Skip to content

Instantly share code, notes, and snippets.

@swapnilshrikhande
Last active November 20, 2018 10:58
Show Gist options
  • Save swapnilshrikhande/5aa1ff49c08973b9f66ec618f960c792 to your computer and use it in GitHub Desktop.
Save swapnilshrikhande/5aa1ff49c08973b9f66ec618f960c792 to your computer and use it in GitHub Desktop.
Eternus Training Session : REST Code Snippets

Tools

References

Notes

@RestResource(urlMapping='/echo/*')
global class EchoService {
@HttpGet
global static String helloWorld() {
return 'Hello, Eternus!';
}
@HttpPost
global static String echo() {
RestRequest request = RestContext.request;
String requestBody = '';
if( request.requestBody!=null ) {
requestBody = request.requestBody.toString();
}
return requestBody;
}
}
@IsTest
public class EchoServiceTest {
//Test Post Service
public testmethod static void testEchoPositive(){
RestRequest mockRequest = new RestRequest();
mockRequest.requestUri ='https://swapnilshrikhande-dev-ed.my.salesforce.com/services/apexrest/echo';
mockRequest.httpMethod = 'POST';
mockRequest.requestBody = Blob.valueof('Hello, World');
Test.startTest();
//
RestContext.request = mockRequest;
String responseMessage = EchoService.echo();
Test.stopTest();
System.assertEquals('Hello, World', responseMessage,'Echo failed, response should match input.');
}
public testmethod static void testEchoNegative(){
RestRequest mockRequest = new RestRequest();
mockRequest.requestUri ='https://swapnilshrikhande-dev-ed.my.salesforce.com/services/apexrest/echo';
mockRequest.httpMethod = 'POST';
mockRequest.requestBody = null;
Test.startTest();
RestContext.request = mockRequest;
String responseMessage = EchoService.echo();
Test.stopTest();
System.assertEquals('', responseMessage,'Echo failed, null request must return blank response.');
}
public testmethod static void testHelloWorld(){
RestRequest mockRequest = new RestRequest();
mockRequest.requestUri ='https://swapnilshrikhande-dev-ed.my.salesforce.com/services/apexrest/echo';
mockRequest.httpMethod = 'GET';
Test.startTest();
RestContext.request = mockRequest;
String responseMessage = EchoService.helloWorld();
Test.stopTest();
System.assertEquals('Hello, Eternus!', responseMessage,'Hello World Get Service Failed.');
}
}
public class RestConsume {
public static String fetchData(){
HttpRequest requestPacket = new HttpRequest();
requestPacket.setEndpoint('http://www.mocky.io/v2/5bf3c1ce3100001300619928');
requestPacket.setMethod('GET');
Http httpConnection = new Http();
HTTPResponse responsePacket = httpConnection.send(requestPacket);
Integer statusCode = responsePacket.getStatusCode();
if( statusCode == 200 ){
//handle success here
} else if( statusCode == 400 ){
//handle error here
} /* else {} we should handle all possible error codes */
System.debug(responsePacket.getStatusCode());
System.debug(responsePacket.getBody());
return responsePacket.getBody();
}
}
public class RestConsumeHttpMock implements HttpCalloutMock {
public Integer status;
public String response;
public RestConsumeHttpMock(Integer statusParam,String responseParam){
this.status = statusParam;
this.response = responseParam;
}
//temporary server / test ke liye server
public HTTPResponse respond(HTTPRequest request) {
HttpResponse response = new HttpResponse();
response.setStatusCode(this.status );
response.setBody(this.response);
return response;
}
}
@IsTest
public class RestConsumeTest {
public testmethod static void testHelloWorldPositive(){
//Create a mock response / acting server
RestConsumeHttpMock mockResponse = new RestConsumeHttpMock(200,'Hello, World');
//Let the test class context know where to get the response from
Test.setMock(HttpCalloutMock.class, mockResponse);
Test.startTest();
String responseMessage = RestConsume.fetchData();
Test.stopTest();
System.assertEquals('Hello, World', responseMessage,'Hello World Rest Consume Service Failed.');
}
public testmethod static void testHelloWorldNegative(){
//Create a mock response / acting server
RestConsumeHttpMock mockResponse = new RestConsumeHttpMock(500,'');
//Let the test class context know where to get the response from
Test.setMock(HttpCalloutMock.class, mockResponse);
Test.startTest();
String responseMessage = RestConsume.fetchData();
Test.stopTest();
System.assertNotEquals('Hello, World', responseMessage,'Hello World Rest Consume Service Failed.');
}
}
@RestResource(urlMapping='/restdemo/*')
global class RestService {
@HttpGet
global static String helloWorld() {
return 'Hello, Eternus!';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment