-
salesforce integration test class coverage
Hi All,
my test class code coverage is failing at this line:
if (res.getStatusCode() == 200) {
its not going beyond this line.
Any suggestions to resolve the issue is highly welcome.
Regards,
Vineet srivastava
public class QualtricsEmailDistribution {
public static Http objhttp;
public static HttpRequest req ;
public static HttpResponse res ;public void MakeRestCalloutEmail()
{
// Custom settings
List<Qualtrics_Email_Distribution__c> customsettingdata = Qualtrics_Email_Distribution__c.getall().values();
if(customsettingdata[0].Status__c==true){
objhttp = new Http();
req = new HttpRequest();
res = new HttpResponse();
req.setMethod('GET');
req.setHeader('Content-Type', 'application/json;charset=UTF-8');
//GetDistribution
String epoint='http://api.salesforce.com/';
req.setEndpoint(epoint);
system.debug('After end point');
// Set the necessary Headers
String reqBody = '';
req.setBody(reqBody);
System.debug('request body'+req);
try {
res = objhttp.send(req);}
catch(System.CalloutException e) {
System.debug('Callout error: '+ e);
}
system.debug('res'+res);
if (res.getStatusCode() == 200) {
Map<String, Object> results = (Map<String, Object>)JSON.deserializeUntyped(res.getBody());
system.debug('results'+results);
Map<String, Object> resultdata = (Map<String, Object>) results.get('Result');
system.debug('Key'+resultdata.keySet());
List<Object> disdata = (List<Object>) resultdata.get('Distributions');
//system.debug('disdata'+ String.valueOf(disdata[0]));
system.debug('disdata'+ String.valueOf(disdata));
system.debug('in loop'+disdata.size());
Map<Object,Object> finaljsondata = new Map<Object,Object>();
//check heapsize here disdata.size()-1
for(Integer i=0;i<20;i++){
Map<String, Object> emaildistributions = (Map<String, Object>)JSON.deserializeUntyped(JSON.Serialize(disdata[i]));
Object a1=emaildistributions.get('EmailDistributionID');
Object a2 = emaildistributions.get('CreatedDate');
finaljsondata.put(a1, a2);
}
System.debug('finaljsondata'+finaljsondata);
//Campaign Member data
list<Campaignmember> cammember = new list<Campaignmember>();
cammember = [select id,Actual_sent_date__c,Qualtrics_Schedule_Date__c,Qualtrics_Schedule_Reminder1__c,Qualtrics_Schedule_Reminder2__c from Campaignmember where Actual_sent_date__c!=null];
System.debug('cammember'+cammember);
for(Object finddate:finaljsondata.values()){
system.debug('finddate'+finddate);
}
for(Campaignmember cmm:cammember){
system.debug('Campaignmember'+cmm.Actual_sent_date__c);
}
}
}
}
}
fake response class:-@isTest
global class FakeResponse implements HttpCalloutMock{
global static HTTPResponse respond(HTTPRequest req) {
System.assertEquals('http://api.salesforce.com/foo/bar', req.getEndpoint());System.assertEquals('GET', req.getMethod());
// Create a fake response
HttpResponse res = new HttpResponse();
res.setHeader('Content-Type', 'application/json');
res.setBody('{"foo":"bar"}');res.setStatusCode(200);
return res;
}
}test class code:-
@isTest
global class TestQualtricsEmailDistribution {
@isTest static void init() {
Contact con=new contact();
con.LastName='vineet';
insert con;
Contact cont=[select Id,LastName from Contact where Id=:con.Id];
Qualtrics_Email_Distribution__c qed= new Qualtrics_Email_Distribution__c();
qed.Name='qualtrics';
qed.Library_ID__c='123';
qed.Status__c=true;
qed.Qualtrics_User_Id__c='456';
qed.Survey_ID__c='789';
qed.Token__c='aaa';
insert qed;
Campaign c=new Campaign();
c.Name='test';
insert c;
// Campaign cp = [SELECT Id FROM Campaign where Name='test vig' AND IsActive=TRUE LIMIT 1];
Campaign cp=[SELECT Id, name from Campaign where id=:c.Id];
Campaignmember cm= new Campaignmember();
cm.Actual_sent_date__c=datetime.now();
cm.Qualtrics_Schedule_Date__c=datetime.now();
cm.Qualtrics_Schedule_Reminder1__c=datetime.now();
cm.Qualtrics_Schedule_Reminder2__c=datetime.now();
cm.Status='sent';
cm.ContactId=cont.Id;
cm.CampaignId=cp.Id;
cm.Actual_sent_date__c=datetime.now();
insert cm;}
/* global static HTTPResponse respond(HTTPRequest req) {
System.assertEquals('http://api.salesforce.com/foo/bar', req.getEndpoint());System.assertEquals('GET', req.getMethod());
// Create a fake response
HttpResponse res = new HttpResponse();
res.setHeader('Content-Type', 'application/json');
res.setBody('{"foo":"bar"}');res.setStatusCode(200);
return res;
- This discussion was modified 6 years, 12 months ago by vineet.
Log In to reply.
Popular Salesforce Blogs
Here's What To Expect From Salesforce's TrailheaDX 2021
TrailheaDX is the year's most exciting event for Trailblazers who want to learn new ways to build apps on Salesforce and expand the Salesforce Customer…
What are the Benefits of Integrating Salesforce Order Management System with e-commerce in 2023?
The e-commerce industry has evolved from small stores to megastores in the passing years. However, managing the back end of an online retail business is…
What does Salesforce Tableau Integration mean for Customers?
Salesforce Tableau Integration - Salesforce is known for its acquisitions, always with a strategy to deliver comprehensive CRM features and world-class experiences to its stakeholders.…
Popular Salesforce Videos
How to implement Salesforce shield in 20 min?
Many organizations have “bought” Salesforce Shield but haven’t implemented it yet, due to some complexities that come along with security-related products. Pete and Brian will…
Introduction to Salesforce CTA Exam
The average salary for a Technical Architect is $118,324 per year in the United States. Do you also want to become Technical Exam by cracking…
Spring '21 Release - Time-dependent Action in Salesforce Flows
If you’re familiar with scheduled actions in Process Builder or time-dependent actions in workflow rules, know that scheduled paths on record-triggered flows can accomplish the…
Popular Salesforce Infographics
Why Integrate Your Pardot Account with Salesforce?
Salesforce Sales Cloud is primarily a sales tool while Pardot is a marketing automation platform. Both are designed to increase sales and maximize efficiency for…
Salesforce Admin Certification Path
The Salesforce Certified Administrator program is designed for individuals who have experience as a Salesforce administrator. The program encompasses the breadth of applications, the features…
How to Deliver a Great Presentation at Dreamforce? [Infographic]
First of all, remember that attendees have paid good money to see you — so it's up to you to make sure they get what…