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

How to Create Test Class for Webservice method
I was trying to create test class and I am getting an error saying : Methods defined as testmethod do not support web service callouts. I am pasting my APEX Code below please help me out from here.
global class sendToEncompass{
// @future(callout=true)
public String EncompassMSG;
WebService static String basicCallout(String OppID){
opportunity opp = [select id, Loan_Number__c,Borrower_SSN__c, Co_Borrower_First_Name__c, Co_Borrower_Last_Name__c, Co_Borrower_SSN__c, Borrower_Email__c, Borrower_First_Name__c, Borrower_Last_Name__c, owner.email, Subject_Property_Street__c, Subject_Property_City__c, Subject_Property_Zip__c, Processing_Notes__c from Opportunity where id =:OppID];
HttpRequest req = new HttpRequest();
req.setClientCertificateName('websvcs_cert');
req.setEndpoint('https://api.XXXYYY.com/eupdate/EUpdateService.svc/insertUpdateLoans');
req.setMethod('POST');
req.setHeader('Content-Type', 'application/xml');
req.setTimeout(120000);
req.setBody(
'<LoanEntries xmlns="http://schemas.XXXYYY.org/2001/07/EncompassService">' +
'<LoanData>' +
'<LoanField>' +
'<field_id>CX.SALESFORCELINKIDATE</field_id>' +
'<field_value>'+System.now().format('MM/dd/yyyy')+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>LoanOfficer</field_id>' +
'<field_value>'+opp.owner.email+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>36</field_id>' +
'<field_value>'+opp.Borrower_First_Name__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>37</field_id>' +
'<field_value>'+opp.Borrower_Last_Name__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>11</field_id>' +
'<field_value>'+opp.Subject_Property_Street__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>12</field_id>' +
'<field_value>'+opp.Subject_Property_City__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>15</field_id>' +
'<field_value>'+opp.Subject_Property_Zip__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>364</field_id>' +
'<field_value>'+opp.Loan_Number__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>65</field_id>' +
'<field_value>'+opp.Borrower_SSN__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>68</field_id>' +
'<field_value>'+opp.Co_Borrower_First_Name__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>69</field_id>' +
'<field_value>'+opp.Co_Borrower_Last_Name__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>97</field_id>' +
'<field_value>'+opp.Co_Borrower_SSN__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>1240</field_id>' +
'<field_value>'+opp.Borrower_Email__c+'</field_value>' +
'</LoanField>' +
'</LoanData>' +
'</LoanEntries>'
);
//req.setEndpoint('https://api.XXXYYY.com/eupdate/EUpdateService.svc/getFieldMappings');
//req.setMethod('GET');
Http http = new Http();
try{
HTTPResponse res = http.send(req);
System.debug(res.getBody());
String loanID = res.getBody();
if(loanID.contains('Created')){
loanID = loanID.split(':', 14)[2];
loanID = (loanID.split('<',39)[0]).trim();
system.debug(loanID);
opp.GUID__c = loanID;
// EncompassMSG = 'Encompass loan record is successfully created, Click ok to continue';
}
else{
loanID = loanID.split(':', 14)[2];
loanID = (loanID.split('<',39)[0]).trim();
system.debug(loanID);
opp.GUID__c = 'Error: ' +loanID;
//EncompassMSG = 'Error is occured while creating Encompass record, please try again or contact support';
}
update opp;
if((opp.GUID__c).contains('Error')){
return 'Error is occured while creating Encompass record, please try again or contact support';
}else{
return 'Encompass loan record is successfully created';
}
}
catch(System.CalloutException e){
return 'Request time is out, Please try again';
}
}
}
global class sendToEncompass{
// @future(callout=true)
public String EncompassMSG;
WebService static String basicCallout(String OppID){
opportunity opp = [select id, Loan_Number__c,Borrower_SSN__c, Co_Borrower_First_Name__c, Co_Borrower_Last_Name__c, Co_Borrower_SSN__c, Borrower_Email__c, Borrower_First_Name__c, Borrower_Last_Name__c, owner.email, Subject_Property_Street__c, Subject_Property_City__c, Subject_Property_Zip__c, Processing_Notes__c from Opportunity where id =:OppID];
HttpRequest req = new HttpRequest();
req.setClientCertificateName('websvcs_cert');
req.setEndpoint('https://api.XXXYYY.com/eupdate/EUpdateService.svc/insertUpdateLoans');
req.setMethod('POST');
req.setHeader('Content-Type', 'application/xml');
req.setTimeout(120000);
req.setBody(
'<LoanEntries xmlns="http://schemas.XXXYYY.org/2001/07/EncompassService">' +
'<LoanData>' +
'<LoanField>' +
'<field_id>CX.SALESFORCELINKIDATE</field_id>' +
'<field_value>'+System.now().format('MM/dd/yyyy')+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>LoanOfficer</field_id>' +
'<field_value>'+opp.owner.email+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>36</field_id>' +
'<field_value>'+opp.Borrower_First_Name__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>37</field_id>' +
'<field_value>'+opp.Borrower_Last_Name__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>11</field_id>' +
'<field_value>'+opp.Subject_Property_Street__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>12</field_id>' +
'<field_value>'+opp.Subject_Property_City__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>15</field_id>' +
'<field_value>'+opp.Subject_Property_Zip__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>364</field_id>' +
'<field_value>'+opp.Loan_Number__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>65</field_id>' +
'<field_value>'+opp.Borrower_SSN__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>68</field_id>' +
'<field_value>'+opp.Co_Borrower_First_Name__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>69</field_id>' +
'<field_value>'+opp.Co_Borrower_Last_Name__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>97</field_id>' +
'<field_value>'+opp.Co_Borrower_SSN__c+'</field_value>' +
'</LoanField>' +
'<LoanField>' +
'<field_id>1240</field_id>' +
'<field_value>'+opp.Borrower_Email__c+'</field_value>' +
'</LoanField>' +
'</LoanData>' +
'</LoanEntries>'
);
//req.setEndpoint('https://api.XXXYYY.com/eupdate/EUpdateService.svc/getFieldMappings');
//req.setMethod('GET');
Http http = new Http();
try{
HTTPResponse res = http.send(req);
System.debug(res.getBody());
String loanID = res.getBody();
if(loanID.contains('Created')){
loanID = loanID.split(':', 14)[2];
loanID = (loanID.split('<',39)[0]).trim();
system.debug(loanID);
opp.GUID__c = loanID;
// EncompassMSG = 'Encompass loan record is successfully created, Click ok to continue';
}
else{
loanID = loanID.split(':', 14)[2];
loanID = (loanID.split('<',39)[0]).trim();
system.debug(loanID);
opp.GUID__c = 'Error: ' +loanID;
//EncompassMSG = 'Error is occured while creating Encompass record, please try again or contact support';
}
update opp;
if((opp.GUID__c).contains('Error')){
return 'Error is occured while creating Encompass record, please try again or contact support';
}else{
return 'Encompass loan record is successfully created';
}
}
catch(System.CalloutException e){
return 'Request time is out, Please try again';
}
}
}
The documentation for this process is here:
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_callouts_wsdl2apex_testing.htm