You need to sign in to do that
Don't have an account?
Admin DNA
test callout class
Hi at all,
I'm trying to test this class
and this is test class:
Thanks in advance
I'm trying to test this class
//Send SMS (Routee) public class sms { @AuraEnabled public static void sendSms(String destinatario, String testo){ //Get Current User MobilePhone String mittente = [Select MobilePhone From User Where Id = :UserInfo.getUserId()][0].MobilePhone; mittente = mittente.deleteWhitespace(); //Routee Authentication and Get Token Http http = new Http(); HttpRequest req = new HttpRequest(); req.setEndpoint('https://auth.routee.net/oauth/token'); req.setMethod('POST'); req.setHeader('authorization', 'Basic xxxx'); req.setHeader('content-type', 'application/x-www-form-urlencoded'); req.setBody('grant_type=client_credentials'); HttpResponse response = http.send(req); // Parse the JSON response if (response.getStatusCode() != 200) { System.debug('The status code returned was not expected: ' + response.getStatusCode() + ' ' + response.getStatus()); } else { System.debug(response.getBody()); String json = response.getBody(); JSONParser parser = System.JSON.createParser(json); while (parser.nextToken() != null) { if(parser.getCurrentName() == 'access_token') { parser.nextValue(); System.debug(parser.getText()); String access_token = parser.getText(); // Send SMS Http http1 = new Http(); HttpRequest req1 = new HttpRequest(); JSONGenerator body = System.JSON.createGenerator(true); body.writeStartObject(); body.writeStringField('from', mittente); body.writeStringField('to', destinatario); body.writeStringField('body',testo); body.writeEndObject(); String bodyS = body.getAsString(); req1.setEndpoint('https://connect.routee.net/sms'); req1.setMethod('POST'); req1.setHeader('authorization', 'Bearer '+ access_token); req1.setHeader('content-type', 'application/json'); req1.setBody(bodyS); HttpResponse response1 = http.send(req1); } } } } }
and this is test class:
@isTest private class smsTest { @isTest static void testsendSms() { // Set mock callout class Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator()); // Call method to test. // This causes a fake response to be sent // from the class that implements HttpCalloutMock. HttpResponse res = smsTest.sendSms('destinatario', 'testo'); // Verify response received contains fake values String contentType = res.getHeader('Content-Type'); System.assert(contentType == 'application/json'); String actualValue = res.getBody(); String expectedValue = '{"example":"test"}'; System.assertEquals(actualValue, expectedValue); System.assertEquals(200, res.getStatusCode()); } }
Thanks in advance