You need to sign in to do that
Don't have an account?
golu
Writing a test class for post callout?
Hi,
i am getting a post call out from external stsyem. i am creating or updating a custom object record out of it. Can anyone please let em know how to write a test classs for it?
Here is my code:
global without sharing class ContactService {
@HttpPost
global static String insertContact(ContactInfoParser contactRec){
//creation or update of application record. Mapping the fields from ContactInfoParser class.
String RecordTypeApplicationId = Schema.SObjectType.Application__c.getRecordTypeInfosByName().get('Test').getRecordTypeId();
Application__c applicationObj = new Application__c();
applicationObj.Id = contactRec.application.applicationId;
applicationObj.applicant__c = contactRec.contact.contactId;
applicationObj.RecordTypeId = RecordTypeApplicationId;
applicationObj.assessPriorLearning__c = contactRec.application.assessPriorLearning;
applicationObj.Status__c = contactRec.application.status;
applicationObj.reason__c= contactRec.application.reason;
applicationObj.priorLearningNotes__c= contactRec.application.priorLearningNotes;
applicationObj.applingForCredit__c= contactRec.application.applingForCredit;
upsert applicationObj;
Thanks
i am getting a post call out from external stsyem. i am creating or updating a custom object record out of it. Can anyone please let em know how to write a test classs for it?
Here is my code:
global without sharing class ContactService {
@HttpPost
global static String insertContact(ContactInfoParser contactRec){
//creation or update of application record. Mapping the fields from ContactInfoParser class.
String RecordTypeApplicationId = Schema.SObjectType.Application__c.getRecordTypeInfosByName().get('Test').getRecordTypeId();
Application__c applicationObj = new Application__c();
applicationObj.Id = contactRec.application.applicationId;
applicationObj.applicant__c = contactRec.contact.contactId;
applicationObj.RecordTypeId = RecordTypeApplicationId;
applicationObj.assessPriorLearning__c = contactRec.application.assessPriorLearning;
applicationObj.Status__c = contactRec.application.status;
applicationObj.reason__c= contactRec.application.reason;
applicationObj.priorLearningNotes__c= contactRec.application.priorLearningNotes;
applicationObj.applingForCredit__c= contactRec.application.applingForCredit;
upsert applicationObj;
Thanks
<pre>
private static testMethod void testInsertContact()
{
ContactInfoParser parser = new ContactInfoParser(); // initialize this as appropriate
Test.startTest();
String result = ContactService.insertContact( parser );
Test.stopTest();
System.assertEquals( 'what the result should be', result, 'The result is wrong.' );
List<Application__c> applications = [SELECT Id FROM Application__c];
System.assertEquals( 1, applications.size(), 'Wrong number of applications created.' );
// assert that other things about the application is correct
}
</pre>
All Answers
You don't actually simulate the HTTPRequest coming into the API in your test class. It's not like simulating an HTTP callout with a mock.
Can you please give a sample code for reference?
Thanks.
<pre>
private static testMethod void testInsertContact()
{
ContactInfoParser parser = new ContactInfoParser(); // initialize this as appropriate
Test.startTest();
String result = ContactService.insertContact( parser );
Test.stopTest();
System.assertEquals( 'what the result should be', result, 'The result is wrong.' );
List<Application__c> applications = [SELECT Id FROM Application__c];
System.assertEquals( 1, applications.size(), 'Wrong number of applications created.' );
// assert that other things about the application is correct
}
</pre>