Activity Forums Salesforce® Discussions salesforce integration test class coverage

  • salesforce integration test class coverage

    Posted by vineet on May 2, 2017 at 7:11 am

    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.
    vineet replied 6 years, 12 months ago 1 Member · 0 Replies
  • 0 Replies

Log In to reply.

Popular Salesforce Blogs

Popular Salesforce Videos

Popular Salesforce Infographics