Guest User

Untitled

a guest
Dec 2nd, 2018
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1. public class Callout {
  2. public List<Tool__c> toolsList;
  3. public HttpResponse responseService;
  4.  
  5. public HttpRequest createRequestForToken(){
  6. HttpRequest ourRequest = new HttpRequest();
  7. ourRequest.setBody(myTokenString);
  8. ourRequest.setMethod('GET');
  9. ourRequest.setEndpoint('https://my.salesforce.com/services/oauth2/token');
  10. return ourRequest;
  11. }
  12.  
  13. public class getToken{
  14. public String WEB_TOKEN{get;set;}
  15. }
  16.  
  17. public HttpRequest createRequestForService(String token){
  18. HttpRequest finalRequest = new HttpRequest();
  19. finalRequest.setHeader('Authorization','Bearer ' + token);
  20. finalRequest.setHeader('Content-Type','application/json');
  21. finalRequest.setHeader('accept','application/json');
  22. finalRequest.setMethod('GET');
  23. finalRequest.setEndpoint('https://my.salesforce.com/services/apexrest/endpoint');
  24. return finalRequest;
  25. }
  26.  
  27. public List<Tool__c> getCalloutResponseContents() {
  28. Http ourHttp = new Http();
  29. HttpRequest requestForToken = createRequestForToken();
  30. HttpResponse responseToken = ourHttp.send(requestForToken);
  31. getToken objAuthenticationInfo = (getToken)JSON.deserialize(responseToken.getbody(), getToken.class);
  32.  
  33. if(objAuthenticationInfo.WEB_TOKEN != null) {
  34. HttpRequest requestForService = createRequestForService(objAuthenticationInfo.WEB_TOKEN);
  35. responseService = ourHttp.send(requestForService);
  36. //System.JSONException: Malformed JSON: Expected '[' at the beginning of List/Set:
  37. toolsList = (List<Tool__c>)JSON.deserialize(responseService.getBody(), List<Tool__c>.class);
  38.  
  39. for(Tool__c t : toolsList) {
  40. t.Id = null;
  41. }
  42. return toolsList;
  43. }
  44. return null;
  45. }
  46. }
  47.  
  48. @isTest
  49. global class MyMock implements HttpCalloutMock {
  50.  
  51. String token;
  52.  
  53. public MyMock(String token) {
  54. this.token = token;
  55. }
  56.  
  57. global HTTPResponse respond(HTTPRequest request) {
  58. HttpResponse response = new HttpResponse();
  59. response.setHeader('Content-Type', 'application/json');
  60. String serialized;
  61. if(request.getEndpoint().contains('services/oauth2/token')) {
  62. serialized = '{"'+ token +'":"FAKE-WEB-TOKEN"}';
  63. } else {
  64. serialized = '{"Name":"OurName"}';
  65. }
  66. response.setBody(serialized);
  67. return response;
  68. }
  69. }
  70.  
  71. @isTest
  72. private class CalloutTest {
  73.  
  74. static String getTokenBody(){
  75. String consumerKey = '234234234';
  76. String consumerSecret = '678678678';
  77. String username = 'mail@mail.com';
  78. String password = '12312321213';
  79. String request = 'grant_type=password&client_id=' + consumerKey +'&client_secret=' + consumerSecret +
  80. '&username=' + username + '&password='+password;
  81. return request;
  82. }
  83.  
  84. @isTest
  85. static void testGetCallout() {
  86. Callout callout = new Callout();
  87.  
  88. String request = myTokenString;
  89. Test.setMock(HttpCalloutMock.class, new MyMock('WEB_TOKEN'));
  90.  
  91. Test.startTest();
  92. //System.JSONException: Malformed JSON: Expected '[' at the beginning of List/Set:
  93. List<Tool__c> toolsList = callout.getCalloutResponseContents();
  94. HttpResponse response = callout.responseService;
  95. Test.stopTest();
  96.  
  97. String contentType = response.getHeader('Content-Type');
  98. String actualValue = response.getBody();
  99. String expectedValue = '{"Name":"OurName"}';
  100.  
  101. System.assert(contentType == 'application/json');
  102. System.assertEquals(actualValue, expectedValue);
  103. }
  104. }
Add Comment
Please, Sign In to add comment