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 7 years ago by  vineet.
    vineet replied 7 years ago 1 Member · 0 Replies
  • 0 Replies

Log In to reply.

Popular Salesforce Blogs

Popular Salesforce Videos

Pros & Cons of Lightning Component vs. 3rd party frameworks in Salesforce UI development

Video in

Nikita drops by to share his invaluable experience of using popular 3rd party frameworks in Salesforce. http://media.blubrry.com/salesforceway/audio.xmcdn.com/group42/M05/25/57/wKgJ81rXk6XjaZIAAU_I_KtprFM998.m4a  

Popular Salesforce Infographics