You need to sign in to do that
Don't have an account?
Nagaraj SV
Please help me to write test class for below class.....
Public class GetCases
{
Public static void SaveCase(GetCases.Cases cases)
{
HttpRequest req = new HttpRequest();
//req.setEndpoint(System.URL.getSalesforceBaseUrl().toExternalForm()+'/services/apexrest/CaseRestAPI?Priority='+cases.Priority+'&Reason='+cases.Reason+'&Subject='+cases.Subject+'&Description='+cases.Description+'&Status='+cases.Status);
req.setEndpoint(System.URL.getSalesforceBaseUrl().toExternalForm()+'/services/apexrest/CaseRestAPI');
req.setMethod('POST');
req.setHeader('Content-Type', 'application/json');
string caseNew=System.JSON.serialize(cases);
req.setHeader('Content-Length',String.valueof(caseNew.length()));
req.setCompressed(true);
req.setHeader('Authorization', 'OAuth '+GetSessionId.getSessionId());
req.setBody(caseNew);
Http http = new Http();
HTTPResponse res = http.send(req);
// redirection checking
boolean redirect = false;
if (res.getStatusCode() >=300 && res.getStatusCode() <= 307 && res.getStatusCode() != 306)
{
do {
redirect = false; // reset the value each time
String loc = res.getHeader('Location'); // get location of the redirect
if(loc == null) {
redirect = false;
continue;
}
req = new HttpRequest();
req.setEndpoint(loc);
req.setMethod('POST');
req.setHeader('Content-Type', 'application/json');
caseNew=System.JSON.serialize(cases);
req.setHeader('Content-Length',String.valueof(caseNew.length()));
req.setCompressed(true);
req.setHeader('Authorization', 'OAuth '+GetSessionId.getSessionId());
req.setBody(caseNew);
res = http.send(req);
if(res.getStatusCode() != 500) // 500 = fail
{
if(res.getStatusCode() >=300 && res.getStatusCode() <= 307 && res.getStatusCode() != 306)
{
redirect= true;
}
}
} while (redirect && Limits.getCallouts() != Limits.getLimitCallouts());
}
string jsonResponse=res.getBody();
System.debug('POSTBODY: '+jsonResponse);
System.debug('POSTSTATUS:'+res.getStatus());
System.debug('POSTSTATUS_CODE:'+res.getStatusCode());
}
}
{
Public static void SaveCase(GetCases.Cases cases)
{
HttpRequest req = new HttpRequest();
//req.setEndpoint(System.URL.getSalesforceBaseUrl().toExternalForm()+'/services/apexrest/CaseRestAPI?Priority='+cases.Priority+'&Reason='+cases.Reason+'&Subject='+cases.Subject+'&Description='+cases.Description+'&Status='+cases.Status);
req.setEndpoint(System.URL.getSalesforceBaseUrl().toExternalForm()+'/services/apexrest/CaseRestAPI');
req.setMethod('POST');
req.setHeader('Content-Type', 'application/json');
string caseNew=System.JSON.serialize(cases);
req.setHeader('Content-Length',String.valueof(caseNew.length()));
req.setCompressed(true);
req.setHeader('Authorization', 'OAuth '+GetSessionId.getSessionId());
req.setBody(caseNew);
Http http = new Http();
HTTPResponse res = http.send(req);
// redirection checking
boolean redirect = false;
if (res.getStatusCode() >=300 && res.getStatusCode() <= 307 && res.getStatusCode() != 306)
{
do {
redirect = false; // reset the value each time
String loc = res.getHeader('Location'); // get location of the redirect
if(loc == null) {
redirect = false;
continue;
}
req = new HttpRequest();
req.setEndpoint(loc);
req.setMethod('POST');
req.setHeader('Content-Type', 'application/json');
caseNew=System.JSON.serialize(cases);
req.setHeader('Content-Length',String.valueof(caseNew.length()));
req.setCompressed(true);
req.setHeader('Authorization', 'OAuth '+GetSessionId.getSessionId());
req.setBody(caseNew);
res = http.send(req);
if(res.getStatusCode() != 500) // 500 = fail
{
if(res.getStatusCode() >=300 && res.getStatusCode() <= 307 && res.getStatusCode() != 306)
{
redirect= true;
}
}
} while (redirect && Limits.getCallouts() != Limits.getLimitCallouts());
}
string jsonResponse=res.getBody();
System.debug('POSTBODY: '+jsonResponse);
System.debug('POSTSTATUS:'+res.getStatus());
System.debug('POSTSTATUS_CODE:'+res.getStatusCode());
}
}
Hi Nagaraj
Please, read article about Http Callout mock
Thanks, Alex