You need to sign in to do that
Don't have an account?
Roshan singh 21
How write test Class for my rest API class
Hi All Please help me to write Test Class for mu class
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 = 'dost1234';
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('url')) {
return 'url';
}
else if(url.contains('url1')) {
return 'Url1';
}
else if(url.contains('Url2')) {
return 'Url 2';
}
else if(url.contains('Url3')) {
return 'Url 3';
}
else if(url.contains('Url4')) {
return 'Url4';
}
else if(url.contains('Url5')) {
return 'Url5';
}
else {
return '';
}
}
public PageReference savePreview2Result(){
PageReference p = callhttp('https://url******1*********');
return p;
}
public PageReference savePreview4Result(){
PageReference p = callhttp('https://url1******2*********');
return p;
}
public PageReference savePreview5Result(){
PageReference p = callhttp('https://ur2******3*********');
return p;
}
public PageReference savePreview7Result(){
PageReference p = callhttp('https://url3******4*********');
return p;
}
public PageReference saveTsysResult(){
PageReference p = callhttp('https://url4******5*********');
return p;
}
public PageReference saveMyscResult(){
PageReference p = callhttp('https://url5******6*********');
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;
}
}
Class: 2
public class JsonParserDetail {
public String issuername;
public String issuerBankdirName;
public String processorName;
public String subProcessorName;
public String siloName;
public static List <JsonParserDetail> parse(String json) {
return (List<JsonParserDetail>) System.JSON.deserialize(json,List<JsonParserDetail>.class);
}
}
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 = 'dost1234';
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('url')) {
return 'url';
}
else if(url.contains('url1')) {
return 'Url1';
}
else if(url.contains('Url2')) {
return 'Url 2';
}
else if(url.contains('Url3')) {
return 'Url 3';
}
else if(url.contains('Url4')) {
return 'Url4';
}
else if(url.contains('Url5')) {
return 'Url5';
}
else {
return '';
}
}
public PageReference savePreview2Result(){
PageReference p = callhttp('https://url******1*********');
return p;
}
public PageReference savePreview4Result(){
PageReference p = callhttp('https://url1******2*********');
return p;
}
public PageReference savePreview5Result(){
PageReference p = callhttp('https://ur2******3*********');
return p;
}
public PageReference savePreview7Result(){
PageReference p = callhttp('https://url3******4*********');
return p;
}
public PageReference saveTsysResult(){
PageReference p = callhttp('https://url4******5*********');
return p;
}
public PageReference saveMyscResult(){
PageReference p = callhttp('https://url5******6*********');
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;
}
}
Class: 2
public class JsonParserDetail {
public String issuername;
public String issuerBankdirName;
public String processorName;
public String subProcessorName;
public String siloName;
public static List <JsonParserDetail> parse(String json) {
return (List<JsonParserDetail>) System.JSON.deserialize(json,List<JsonParserDetail>.class);
}
}
Step 1 : Create a mock request . Provide an implementation for the HttpCalloutMock interface to specify the response sent in the respond method, which the Apex runtime calls to send a response for a callout.
Step 2 : Call that mock Web service in apex test class