Skip to content

Commit ba1a9b0

Browse files
committed
Add test class for APICallController
1 parent a5006a5 commit ba1a9b0

File tree

3 files changed

+43
-2
lines changed

3 files changed

+43
-2
lines changed

force-app/main/default/classes/APICallController.cls

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ public with sharing class APICallController {
1212
) {
1313
HttpRequest req = new HttpRequest();
1414
req.setEndpoint(endPoint);
15-
system.debug('endpoint ' + endpoint);
1615
req.setMethod(method);
1716
if (method != 'GET') {
1817
req.setBody(bodyStr);
@@ -23,7 +22,6 @@ public with sharing class APICallController {
2322
}
2423
}
2524
HttpResponse resp = new Http().send(req);
26-
system.debug('response ' + resp.getBody());
2725
Map<String, String> respHeaders = new Map<String, String>();
2826
for (String key : resp.getHeaderKeys()) {
2927
respHeaders.put(key, String.valueOf(resp.getHeader(key)));
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
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+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
3+
<apiVersion>48.0</apiVersion>
4+
<status>Active</status>
5+
</ApexClass>

0 commit comments

Comments
 (0)