You need to sign in to do that
Don't have an account?
Roshan 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
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
Check below code And reome System.assertEquals('https://test1/getIssueList', req.getEndpoint()); line in the MockHttpResponseGenerator class
regards
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...
remove System.assertEquals('https://test1/getIssueList', req.getEndpoint()); line in the MockHttpResponseGenerator class