You need to sign in to do that
Don't have an account?

test class of http Callout
Hi All,
how to cover this method in test class?
public static void addTagsToSocialPost( SocialPost spObj,
String tags ,
//Map<String, Id> predictionTags,
List<ApiLog__c> apiLogsList){
// Api call to update tag to post
List<ApiLog__c> apiLogList = new List<ApiLog__c>();
apiLogList.addAll(apiLogsList);
Map<String, List<ApiLog__c>> accessTokenMap = getAccessToken( spObj
//, tags , predictionTags
);
String accessToken = '';
for(String at : accessTokenMap.keySet()){
accessToken = at;
}
apiLogList.addAll(accessTokenMap.get(accessToken));
HttpRequest req = new HttpRequest();
req.setMethod('POST');
req.setEndpoint( 'https://api.radian6.com/socialcloud/v1/post/workflow/tags/' + spObj.R6PostId);
req.setHeader('auth_token', accessToken);
req.setHeader('auth_appkey', Label.AppKey);
Http binding = new Http();
String tagsToSend = 'tags:'+ tags;
req.setBody('tags='+tags);
req.setHeader('content-type','application/x-www-form-urlencoded');
HttpResponse res;
res = binding.send( req );
try{
res = binding.send( req );
ApiLog__c apiLog = new ApiLog__c();
apiLog.EndPoint__c = req.getEndpoint();
apiLog.ImageURL__c = '';
//apiLog.Prediction__c = predictionTags.get(tags);
apiLog.RequestBody__c = req.getBody();
apiLog.ResponseBody__c = res.getBody();
apiLog.SocialPost__c = spObj.Id;
apiLog.StatusCode__c = String.valueOf(res.getStatusCode());
apiLog.Type__c = 'Social Studio';
apiLogList.add(apiLog);
}catch(Exception e){
ApiLog__c apiLog = new ApiLog__c();
apiLog.EndPoint__c = req.getEndpoint();
apiLog.ImageURL__c = '';
//apiLog.Prediction__c = predictionTags.get(tags);
apiLog.RequestBody__c = req.getBody();
apiLog.ResponseBody__c = res.getBody();
apiLog.SocialPost__c = spObj.Id;
apiLog.StatusCode__c = String.valueOf(res.getStatusCode());
apiLog.Type__c = 'Social Studio';
apiLogList.add(apiLog);
}
insert apiLogList;
}
how to cover this method in test class?
public static void addTagsToSocialPost( SocialPost spObj,
String tags ,
//Map<String, Id> predictionTags,
List<ApiLog__c> apiLogsList){
// Api call to update tag to post
List<ApiLog__c> apiLogList = new List<ApiLog__c>();
apiLogList.addAll(apiLogsList);
Map<String, List<ApiLog__c>> accessTokenMap = getAccessToken( spObj
//, tags , predictionTags
);
String accessToken = '';
for(String at : accessTokenMap.keySet()){
accessToken = at;
}
apiLogList.addAll(accessTokenMap.get(accessToken));
HttpRequest req = new HttpRequest();
req.setMethod('POST');
req.setEndpoint( 'https://api.radian6.com/socialcloud/v1/post/workflow/tags/' + spObj.R6PostId);
req.setHeader('auth_token', accessToken);
req.setHeader('auth_appkey', Label.AppKey);
Http binding = new Http();
String tagsToSend = 'tags:'+ tags;
req.setBody('tags='+tags);
req.setHeader('content-type','application/x-www-form-urlencoded');
HttpResponse res;
res = binding.send( req );
try{
res = binding.send( req );
ApiLog__c apiLog = new ApiLog__c();
apiLog.EndPoint__c = req.getEndpoint();
apiLog.ImageURL__c = '';
//apiLog.Prediction__c = predictionTags.get(tags);
apiLog.RequestBody__c = req.getBody();
apiLog.ResponseBody__c = res.getBody();
apiLog.SocialPost__c = spObj.Id;
apiLog.StatusCode__c = String.valueOf(res.getStatusCode());
apiLog.Type__c = 'Social Studio';
apiLogList.add(apiLog);
}catch(Exception e){
ApiLog__c apiLog = new ApiLog__c();
apiLog.EndPoint__c = req.getEndpoint();
apiLog.ImageURL__c = '';
//apiLog.Prediction__c = predictionTags.get(tags);
apiLog.RequestBody__c = req.getBody();
apiLog.ResponseBody__c = res.getBody();
apiLog.SocialPost__c = spObj.Id;
apiLog.StatusCode__c = String.valueOf(res.getStatusCode());
apiLog.Type__c = 'Social Studio';
apiLogList.add(apiLog);
}
insert apiLogList;
}
This link might be useful for you.
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restful_http_testing_httpcalloutmock.htm
Regards,