|
| 1 | +@isTest |
| 2 | +public with sharing class APICallControllerTest { |
| 3 | + @isTest |
| 4 | + public static void testAPICall() { |
| 5 | + Test.setMock(HttpCalloutMock.class, new APICallMock()); |
| 6 | + HttpResponseWrapper resp = APICallController.makeApiCall( |
| 7 | + 'https://api.example.com', |
| 8 | + 'POST', |
| 9 | + '{"message":"sample_request"}', |
| 10 | + new Map<String, String>{ 'Accept' => 'application/json', 'Content-Type' => 'application/json' } |
| 11 | + ); |
| 12 | + system.assertEquals('{"message": "sample response"}', resp.body, 'Unexpected Response'); |
| 13 | + system.assertEquals(200, resp.statusCode, 'Incorrect value for status code'); |
| 14 | + system.assertEquals(2, resp.headers.size(), 'Mismatch in the number of response headers expected'); |
| 15 | + system.assertEquals('sample_value1', resp.headers.get('custom_header1'), 'Incorrect value for first header'); |
| 16 | + system.assertEquals('sample_value2', resp.headers.get('custom_header2'), 'Incorrect value for second header'); |
| 17 | + } |
| 18 | + |
| 19 | + class APICallMock implements HttpCalloutMock { |
| 20 | + public HttpResponse respond(HttpRequest req) { |
| 21 | + HttpResponse resp = new HttpResponse(); |
| 22 | + if ( |
| 23 | + req.getBody() == '{"message":"sample_request"}' && |
| 24 | + req.getHeader('Accept') == 'application/json' && |
| 25 | + req.getHeader('Content-Type') == 'application/json' |
| 26 | + ) { |
| 27 | + resp.setBody('{"message": "sample response"}'); |
| 28 | + resp.setHeader('custom_header1', 'sample_value1'); |
| 29 | + resp.setHeader('custom_header2', 'sample_value2'); |
| 30 | + resp.setStatusCode(200); |
| 31 | + } else { |
| 32 | + resp.setStatusCode(400); |
| 33 | + resp.setBody('{"message":"Bad Request"}'); |
| 34 | + } |
| 35 | + return resp; |
| 36 | + } |
| 37 | + } |
| 38 | +} |
0 commit comments