You need to sign in to do that
Don't have an account?
shailendra singhai
webservices test class need to create for update the lead record
could you please help me to create test class for the below code, as mock test response need to create here, and iam new for this.
here the intraction between web application and salesforce is happning,
getting input from web application to update the record having valid recordID.
@RestResource(urlMapping='/LeadRestUpdate/*')
Global with sharing class NS_WS_Lead_update {
@HttpPost
Global static String doUpdate()
{
RestRequest req = RestContext.request;
RestResponse res = Restcontext.response;
System.debug('Params: ' + req.params);
//String temp = req.requestBody.toString();
String leadid = req.params.get('lead_id');
Lead ll = [SELECT Id, FirstName,LastName, Phone, email, company FROM Lead WHERE Id = :leadid];
if (req.params.get('step') == 'step1' || req.params.get('step') == 'step2' )
{
ll.FirstName = req.params.get('first_name');
ll.LastName = req.params.get('last_name');
ll.phone = req.params.get('phone');
ll.Email = req.params.get('email');
ll.Company = req.params.get('company_name');
ll.Company_Registration_Number__c = req.params.get('registration_number');
ll.Company_Status__c = req.params.get('company_status');
ll.CompanyType__c = req.params.get('company_type');
if(req.params.get('incorporated_date') != null && req.params.get('incorporated_date') != '' ) {
ll.Incorporation_Date__c = Date.valueOf(req.params.get('incorporated_date'));
}
ll.Street = req.params.get('street');
ll.City = req.params.get('city');
ll.State = req.params.get('state');
ll.Country = req.params.get('country');
ll.PostalCode = req.params.get('zip');
}
if (req.params.get('step') == 'step2')
{
ll.Industry = req.params.get('industry');
if(req.params.get('take_card_payment') == 'true')
{
ll.Do_you_take_Card_transactions__c = Boolean.valueOf( req.params.get('take_card_payment'));
ll.Average_monthly_card_takings__c = req.params.get('cardtakings_amount');
ll.Average_monthly_takings_4_200__c = Boolean.valueOf( req.params.get('cardtakings'));
ll.Average_monthly_transactions_10__c = Boolean.valueOf( req.params.get('cardtransaction10andmore'));
}
}
if (req.params.get('step') == 'step3')
{
Double amount_requested = Double.valueOf(req.params.get('amount_requested'));
ll.Amount_Requested__c = amount_requested;
ll.Term_Requested__c = Double.valueOf(req.params.get ('loan_term'));
ll.Purpose_of_Facility__c = req.params.get('puropose_of_funding');
}
if (req.params.get('step') == 'step4')
{
//ll.Web_to_Lead__c = Boolean.valueOf(req.params.get('web_to_lead'));
ll.Residential_Address_City__c = req.params.get('residential_city');
ll.Residential_Address_Country__c = req.params.get('residential_country');
ll.Residential_Address_State_Province__c = req.params.get('residential_state');
ll.Residential_Address_Street__c = req.params.get('residential_street');
ll.Residential_Address_Zip_Postal_Code__c = req.params.get ('residential_zip');
if (req.params.get('product_interested') != 'bca') {
ll.Home_Owner__c = Boolean.valueOf(req.params.get('own_a_property'));
ll.Ownership_is_of_Residential_Address__c = Boolean.valueOf(req.params.get('same_as_residency'));
ll.Property_Address_City__c = req.params.get('property_city');
ll.Property_Address_Country__c = req.params.get('property_country');
ll.Property_Address_State_Province__c = req.params.get('property_state');
ll.Property_Address_Street__c = req.params.get('property_street');
ll.Property_Address_Zip_Postal_Code__c = req.params.get('property_zip');
}
if (req.params.get('allow_credit_search') == 'true')
ll.Allow_searches_on_all_directors__c = Boolean.valueOf( req.params.get('allow_credit_search'));
else
ll.Allow_searches_on_all_directors__c = false;
if(req.params.get('allow_engaging_card_provider')!=null)
{
ll.Authorization_to_contact_card_provider__c = Boolean.valueOf( req.params.get('allow_engaging_card_provider'));
}
if(req.params.get('take_card_payment') == 'true')
{
ll.Do_you_take_Card_transactions__c = Boolean.valueOf( req.params.get('take_card_payment'));
ll.Average_monthly_card_takings__c = req.params.get('cardtakings_amount');
ll.Average_monthly_takings_4_200__c = Boolean.valueOf( req.params.get('cardtakings'));
ll.Average_monthly_transactions_10__c = Boolean.valueOf( req.params.get('cardtransaction10andmore'));
}
}
update ll;
string messagesent='Thank You. Salesforce has Successfully Updated'+ll.id+req.params.get('step');
return messagesent;
}
}
here the intraction between web application and salesforce is happning,
getting input from web application to update the record having valid recordID.
@RestResource(urlMapping='/LeadRestUpdate/*')
Global with sharing class NS_WS_Lead_update {
@HttpPost
Global static String doUpdate()
{
RestRequest req = RestContext.request;
RestResponse res = Restcontext.response;
System.debug('Params: ' + req.params);
//String temp = req.requestBody.toString();
String leadid = req.params.get('lead_id');
Lead ll = [SELECT Id, FirstName,LastName, Phone, email, company FROM Lead WHERE Id = :leadid];
if (req.params.get('step') == 'step1' || req.params.get('step') == 'step2' )
{
ll.FirstName = req.params.get('first_name');
ll.LastName = req.params.get('last_name');
ll.phone = req.params.get('phone');
ll.Email = req.params.get('email');
ll.Company = req.params.get('company_name');
ll.Company_Registration_Number__c = req.params.get('registration_number');
ll.Company_Status__c = req.params.get('company_status');
ll.CompanyType__c = req.params.get('company_type');
if(req.params.get('incorporated_date') != null && req.params.get('incorporated_date') != '' ) {
ll.Incorporation_Date__c = Date.valueOf(req.params.get('incorporated_date'));
}
ll.Street = req.params.get('street');
ll.City = req.params.get('city');
ll.State = req.params.get('state');
ll.Country = req.params.get('country');
ll.PostalCode = req.params.get('zip');
}
if (req.params.get('step') == 'step2')
{
ll.Industry = req.params.get('industry');
if(req.params.get('take_card_payment') == 'true')
{
ll.Do_you_take_Card_transactions__c = Boolean.valueOf( req.params.get('take_card_payment'));
ll.Average_monthly_card_takings__c = req.params.get('cardtakings_amount');
ll.Average_monthly_takings_4_200__c = Boolean.valueOf( req.params.get('cardtakings'));
ll.Average_monthly_transactions_10__c = Boolean.valueOf( req.params.get('cardtransaction10andmore'));
}
}
if (req.params.get('step') == 'step3')
{
Double amount_requested = Double.valueOf(req.params.get('amount_requested'));
ll.Amount_Requested__c = amount_requested;
ll.Term_Requested__c = Double.valueOf(req.params.get ('loan_term'));
ll.Purpose_of_Facility__c = req.params.get('puropose_of_funding');
}
if (req.params.get('step') == 'step4')
{
//ll.Web_to_Lead__c = Boolean.valueOf(req.params.get('web_to_lead'));
ll.Residential_Address_City__c = req.params.get('residential_city');
ll.Residential_Address_Country__c = req.params.get('residential_country');
ll.Residential_Address_State_Province__c = req.params.get('residential_state');
ll.Residential_Address_Street__c = req.params.get('residential_street');
ll.Residential_Address_Zip_Postal_Code__c = req.params.get ('residential_zip');
if (req.params.get('product_interested') != 'bca') {
ll.Home_Owner__c = Boolean.valueOf(req.params.get('own_a_property'));
ll.Ownership_is_of_Residential_Address__c = Boolean.valueOf(req.params.get('same_as_residency'));
ll.Property_Address_City__c = req.params.get('property_city');
ll.Property_Address_Country__c = req.params.get('property_country');
ll.Property_Address_State_Province__c = req.params.get('property_state');
ll.Property_Address_Street__c = req.params.get('property_street');
ll.Property_Address_Zip_Postal_Code__c = req.params.get('property_zip');
}
if (req.params.get('allow_credit_search') == 'true')
ll.Allow_searches_on_all_directors__c = Boolean.valueOf( req.params.get('allow_credit_search'));
else
ll.Allow_searches_on_all_directors__c = false;
if(req.params.get('allow_engaging_card_provider')!=null)
{
ll.Authorization_to_contact_card_provider__c = Boolean.valueOf( req.params.get('allow_engaging_card_provider'));
}
if(req.params.get('take_card_payment') == 'true')
{
ll.Do_you_take_Card_transactions__c = Boolean.valueOf( req.params.get('take_card_payment'));
ll.Average_monthly_card_takings__c = req.params.get('cardtakings_amount');
ll.Average_monthly_takings_4_200__c = Boolean.valueOf( req.params.get('cardtakings'));
ll.Average_monthly_transactions_10__c = Boolean.valueOf( req.params.get('cardtransaction10andmore'));
}
}
update ll;
string messagesent='Thank You. Salesforce has Successfully Updated'+ll.id+req.params.get('step');
return messagesent;
}
}
Check this,
https://salesforce.stackexchange.com/questions/139235/how-to-create-mock-class-for-multiple-callouts-in-single-class
https://salesforce.stackexchange.com/questions/84947/how-to-write-a-test-class-for-an-apex-class-with-do-post-method
Thanks,
Thanks for the help.
the code which work for me, as below.
@isTest
private class NS_WS_Lead_update_mock_test {
static testMethod void testdoPost() {
Lead inslead=new Lead();
inslead.FirstName ='test1firstname';
inslead.lastname = 'test1lastname';
inslead.Company = 'test1abc';
inslead.Phone='9879879878';
inslead.Email='test11@gmail.com';
insert inslead;
list<lead> leadli=new list<lead>();
leadli= [select ID from lead where FirstName ='test1firstname' and lastname = 'test1lastname'and Company = 'test1abc' limit 1];
Lead findlead=new Lead();
findlead=leadli[0];
String lead_id = findlead.Id;
for(integer i=1;i<=4;i++)
{
RestRequest req = new RestRequest();
req.addHeader('Content-Type', 'application/json'); // Add a JSON Header as it is validated
req.requestURI = '/services/apexrest/LeadRestUpdate/';
req.httpMethod = 'POST';
req.addParameter('lead_id',lead_id);
req.addParameter('step','step'+i);
req.addParameter('first_name','Ramesh');
req.addParameter('last_name','Parekh');
req.addParameter('phone','020202020200');
req.addParameter('email','ss@ssho.com');
req.addParameter('company_name','Myown company');
req.addParameter('registration_number','3456256');
req.addParameter('company_status','active');
req.addParameter('company_type','limited');
req.addParameter('incorporated_date','2016-12-12');
req.addParameter('street','my street');
req.addParameter('city','lonodn');
req.addParameter('state','london');
req.addParameter('country','uk');
req.addParameter('industry','Banking');
req.addParameter('take_card_payment','true');
req.addParameter('cardtakings_amount','');
req.addParameter('cardtakings','false');
req.addParameter('cardtransaction10andmore','false');
req.addParameter('amount_requested','10000');
req.addParameter('loan_term','12');
req.addParameter('puropose_of_funding','Other');
req.addParameter('residential_city','London');
req.addParameter('residential_country','UK');
req.addParameter('residential_state','Herts');
req.addParameter('residential_street','home street');
req.addParameter('residential_zip','sl21dp');
req.addParameter('own_a_property','false');
req.addParameter('same_as_residency','false');
req.addParameter('property_city','');
req.addParameter('property_country','');
req.addParameter('property_state','');
req.addParameter('property_street','');
req.addParameter('property_zip','');
req.addParameter('allow_credit_search','true');
req.addParameter('allow_engaging_card_provider','true');
RestResponse res = new RestResponse();
RestContext.request = req;
RestContext.response = res;
NS_WS_Lead_update.doUpdate();
}
}
}