function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Roshan singh 21Roshan singh 21 

how to get code coverage for my class now i am getting 40%

Hi All,
public class IssuersCalloutController {

    public IssuersCalloutController(ApexPages.StandardController controller) {

        }    
            
    public PageReference callhttp(string serviceURL)
        {
            System.debug('mytest method');
            Http h = new Http();
            HttpRequest req = new HttpRequest();
            req.setEndpoint(serviceURL);
            req.setMethod('GET');
            req.setHeader('Content-Type', 'application/json');
            req.setHeader('Accept','application/json');
            system.debug('request endpoint '+ req);    
            String username = 'amit';
            String password = 'Password';
        
            Blob headerValue= Blob.valueOf(username + ':' + password);
            system.debug('headerValue'+ headerValue);
            String authorizationHeader = 'Basic ' + EncodingUtil.base64Encode(headerValue);
            req.setHeader('Authorization', authorizationHeader);
            req.setTimeout(60000);
        
            system.debug('###req### '+ req);            
            HttpResponse res = h.send(req);
            system.debug('###res### '+ res);
        
            string response = res.getBody();
            system.debug('response'+ response);
               
                
            Set<String> bankNames = New Set<String>();
            // declare issuer list to insert 
            List<Issuers__c> InsertedIssuers = New List<Issuers__c>();
            for(Issuers__c issuer : [Select Id,Bankdir_Name__c from Issuers__c LIMIT 50000]){
            If(!string.isBlank(issuer.Bankdir_Name__c))
                {
                bankNames.add(issuer.Bankdir_Name__c);                          
                }
            }
            system.debug('###Bank Name### '+ bankNames.size());
            List<JsonParserDetail> responseDetails = JsonParserDetail.parse(response); 
            system.debug('****responseDetails****** '+responseDetails);
        
            if(responseDetails.size() > 0){
            for(JsonParserDetail jpd : responseDetails){
                If(!bankNames.contains(jpd.issuerBankdirName))
                    {
                        InsertedIssuers.add(getIssuer(jpd.issuername,jpd.issuerBankdirName,jpd.processorName,jpd.subProcessorName,jpd.siloName));
                    }
                }
            }
            If(InsertedIssuers.size() >0){
            insert InsertedIssuers;      
            }
            PageReference p = apexPages.currentPage();
            string siloName = getsiloname(serviceUrl);
            string message=siloName+' list Successfully updated'+ (InsertedIssuers.size())+'"Thank you!';
            ApexPages.Message msg=new ApexPages.Message(ApexPages.Severity.CONFIRM,message);
            ApexPages.addMessage(msg);
            return p;
        }
 
 
    public string getsiloname(string url) {
            if(url.contains(‘test1’)) {
                return ‘test1';
                }   
            else if(url.contains('test2')) {
                return 'test2';
                }
            else if(url.contains(‘test3’)) {
                return ‘test3';
                }
            else if(url.contains(‘test4’)) {
                return ‘test4';
                }
            else if(url.contains('test5')) {
                return 'test5';
                }
            else if(url.contains('test6')) {
                return 'test6';
                }
                else {                
                return '';
                }
            }

    public PageReference savePreview2Result(){
        PageReference p = callhttp('https://test1/getIssueList' )
            return p;
        }
    
    public PageReference savePreview4Result(){
        PageReference p = callhttp('https://test2/getIssueList' ); 
            return p;
        }
    
    public PageReference savePreview5Result(){
        PageReference p = callhttp('https://test3/getIssueList' ); 
            return p;
        }
    
    public PageReference savePreview7Result(){
        PageReference p = callhttp('https://test4/getIssueList' ); 
            return p;
        }
    public PageReference saveTsysResult(){
       PageReference p = callhttp('https://test5/getIssueList' ); 
            return p;
        }
       
    public PageReference saveMyscResult(){
        PageReference p = callhttp('https://test6/getIssueList' ); 
            return p;
        }
  
          
    public Issuers__c getIssuer(string iName, string ibName, string pName, string spName,string siloName){
    
            Issuers__c issuer = New Issuers__c();
            issuer.Name = iName;
            issuer.Bankdir_Name__c = ibName;
            issuer.Processor_Name__c = pName;
            issuer.SubProcessor_Name__c = spName;
            issuer.Silo_Name__c = siloName;
            return issuer;
        }
    }



My test class 1:-
@isTest
global class MockHttpResponseGenerator implements HttpCalloutMock {

        global HTTPResponse respond(HTTPRequest req) {               
        System.assertEquals('https://test2/getIssueList', req.getEndpoint());                  
        HttpResponse res = new HttpResponse();
        String body = strBody;
        res.setHeader('Content-Type', 'application/json');
        res.setBody(body);
        res.setStatusCode(200);
        return res;
    }
    
     public static final string strBody = '{'+       
        '           "processorName": "PSCUFFFS",'+
        '           "siloName": "Preview",'+
        '           "issuername": "Trumark ", '+
        '           "issuerBankdirName": "4735", '+
        '           "subProcessorName": "PSAgCU"'+
        '}'; 
}
Test Class 2:-
@isTest
private class IssuersCalloutController_Test{
     @isTest static void testCallout() {
     
    PageReference pageRef = Page.ImpactedIssuerVFpage;
    Test.setCurrentPage(pageRef);

    Issuers__c issuer = New Issuers__c();
        issuer.Name = 'Test'; 
        issuer.Bankdir_Name__c =  'Test'; 
        issuer.Processor_Name__c = 'Test'; 
        issuer.SubProcessor_Name__c = 'Test'; 
        issuer.Silo_Name__c =  'Test'; 
        insert issuer ;
            
        Test.StartTest(); 
        ApexPages.currentPage().getParameters().put('Id', String.valueOf(issuer.Id));
        ApexPages.StandardController sc = new ApexPages.StandardController(issuer);        
        IssuersCalloutController ic = new IssuersCalloutController(sc);
        Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator());        
        ic.getsiloname('URL');           
        ic.savePreview2Result();     
        ic.getIssuer('Test1', 'Test2', 'Test3', 'Test4','Test5');
        Test.StopTest(); 
         }
    }

Please help me it's urgent
Sampath SuranjiSampath Suranji
Hi,
Check below code
@isTest
private class IssuersCalloutController_Test{
    @isTest static void testCallout() {
        
        PageReference pageRef = Page.ImpactedIssuerVFpage;
        Test.setCurrentPage(pageRef);
        
        Issuers__c issuer = New Issuers__c();
        issuer.Name = 'Test'; 
        issuer.Bankdir_Name__c =  'Test'; 
        issuer.Processor_Name__c = 'Test'; 
        issuer.SubProcessor_Name__c = 'Test'; 
        issuer.Silo_Name__c =  'Test'; 
        insert issuer ;
        
        Test.StartTest(); 
        ApexPages.currentPage().getParameters().put('Id', String.valueOf(issuer.Id));
        ApexPages.StandardController sc = new ApexPages.StandardController(issuer);        
        IssuersCalloutController ic = new IssuersCalloutController(sc);
        Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator());        
        ic.getsiloname('URL');           
        ic.savePreview2Result();     
        ic.getIssuer('Test1', 'Test2', 'Test3', 'Test4','Test5');
        Test.StopTest(); 
    }
    @isTest static void testOthers() {
        
        PageReference pageRef = Page.ImpactedIssuerVFpage;
        Test.setCurrentPage(pageRef);
        
        Issuers__c issuer = New Issuers__c();
        issuer.Name = 'Test'; 
        issuer.Bankdir_Name__c =  'Test'; 
        issuer.Processor_Name__c = 'Test'; 
        issuer.SubProcessor_Name__c = 'Test'; 
        issuer.Silo_Name__c =  'Test'; 
        insert issuer ;
        
        Test.StartTest(); 
        ApexPages.currentPage().getParameters().put('Id', String.valueOf(issuer.Id));
        ApexPages.StandardController sc = new ApexPages.StandardController(issuer);        
        IssuersCalloutController ic = new IssuersCalloutController(sc);
        Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator());        
        ic.getsiloname('URL');           
        ic.savePreview4Result();   
        ic.savePreview4Result(); 
        ic.savePreview5Result(); 
        ic.savePreview7Result();
        ic.saveTsysResult();
        ic.saveMyscResult();
        ic.getIssuer('Test1', 'Test2', 'Test3', 'Test4','Test5');
        Test.StopTest(); 
    }    
    
}
And reome System.assertEquals('https://test1/getIssueList', req.getEndpoint()); line in the MockHttpResponseGenerator class

regards
 
Roshan singh 21Roshan singh 21
Hi Sampath,
Thank you so much.
after saving class I am getting this error.
System.AssertException: Assertion Failed: Expected: https://test2/getIssueList, Actual: https://test4/getIssueList
Class.MockHttpResponseGenerator.respond: line 5, column 1
Class.IssuersCalloutController.callhttp: line 27, column 1
Class.IssuersCalloutController.savePreview4Result: line 97, column 1
Class.IssuersCalloutController_Test.testOthers: line 48, column 1

Please help me...



 
Sampath SuranjiSampath Suranji
Hi,

remove System.assertEquals('https://test1/getIssueList', req.getEndpoint()); line in the MockHttpResponseGenerator class
Roshan singh 21Roshan singh 21
Hi Sampath thank you so much..