Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Callout {
- public List<Tool__c> toolsList;
- public HttpResponse responseService;
- public HttpRequest createRequestForToken(){
- HttpRequest ourRequest = new HttpRequest();
- ourRequest.setBody(myTokenString);
- ourRequest.setMethod('GET');
- ourRequest.setEndpoint('https://my.salesforce.com/services/oauth2/token');
- return ourRequest;
- }
- public class getToken{
- public String WEB_TOKEN{get;set;}
- }
- public HttpRequest createRequestForService(String token){
- HttpRequest finalRequest = new HttpRequest();
- finalRequest.setHeader('Authorization','Bearer ' + token);
- finalRequest.setHeader('Content-Type','application/json');
- finalRequest.setHeader('accept','application/json');
- finalRequest.setMethod('GET');
- finalRequest.setEndpoint('https://my.salesforce.com/services/apexrest/endpoint');
- return finalRequest;
- }
- public List<Tool__c> getCalloutResponseContents() {
- Http ourHttp = new Http();
- HttpRequest requestForToken = createRequestForToken();
- HttpResponse responseToken = ourHttp.send(requestForToken);
- getToken objAuthenticationInfo = (getToken)JSON.deserialize(responseToken.getbody(), getToken.class);
- if(objAuthenticationInfo.WEB_TOKEN != null) {
- HttpRequest requestForService = createRequestForService(objAuthenticationInfo.WEB_TOKEN);
- responseService = ourHttp.send(requestForService);
- //System.JSONException: Malformed JSON: Expected '[' at the beginning of List/Set:
- toolsList = (List<Tool__c>)JSON.deserialize(responseService.getBody(), List<Tool__c>.class);
- for(Tool__c t : toolsList) {
- t.Id = null;
- }
- return toolsList;
- }
- return null;
- }
- }
- @isTest
- global class MyMock implements HttpCalloutMock {
- String token;
- public MyMock(String token) {
- this.token = token;
- }
- global HTTPResponse respond(HTTPRequest request) {
- HttpResponse response = new HttpResponse();
- response.setHeader('Content-Type', 'application/json');
- String serialized;
- if(request.getEndpoint().contains('services/oauth2/token')) {
- serialized = '{"'+ token +'":"FAKE-WEB-TOKEN"}';
- } else {
- serialized = '{"Name":"OurName"}';
- }
- response.setBody(serialized);
- return response;
- }
- }
- @isTest
- private class CalloutTest {
- static String getTokenBody(){
- String consumerKey = '234234234';
- String consumerSecret = '678678678';
- String username = 'mail@mail.com';
- String password = '12312321213';
- String request = 'grant_type=password&client_id=' + consumerKey +'&client_secret=' + consumerSecret +
- '&username=' + username + '&password='+password;
- return request;
- }
- @isTest
- static void testGetCallout() {
- Callout callout = new Callout();
- String request = myTokenString;
- Test.setMock(HttpCalloutMock.class, new MyMock('WEB_TOKEN'));
- Test.startTest();
- //System.JSONException: Malformed JSON: Expected '[' at the beginning of List/Set:
- List<Tool__c> toolsList = callout.getCalloutResponseContents();
- HttpResponse response = callout.responseService;
- Test.stopTest();
- String contentType = response.getHeader('Content-Type');
- String actualValue = response.getBody();
- String expectedValue = '{"Name":"OurName"}';
- System.assert(contentType == 'application/json');
- System.assertEquals(actualValue, expectedValue);
- }
- }
Add Comment
Please, Sign In to add comment