You need to sign in to do that
Don't have an account?
Procurement Executive
test class for @invocablemethod
Need help with test class for @invocablemethod
Apex Class:-
public class SurveyResponseUpdate{
@InvocableMethod
public static void updateContactWithResponse(List<Id> ResId){
set<Id> ConId = new set<Id>();
set<Id> UserId = new set<Id>();
map<Id, String> contactMap = new map<Id, String>();
for(SurveyQuestionResponse surveyRes:[SELECT id, QuestionId, ResponseId, Response.SubmitterId,
QuestionChoiceId, Question.Name, QuestionChoice.Name
FROM SurveyQuestionResponse
WHERE Id =: ResId])
{
if(surveyRes.Response.SubmitterId != null
&& string.valueOf(surveyRes.Response.SubmitterId).startswith('003')
&& surveyRes.Question.Name == 'How many employees are in your organization?')
{
contactMap.put(surveyRes.Response.SubmitterId, surveyRes.QuestionChoice.Name);
}
}
List<Account> acclisttoUpdate = new List<Account>();
for(Contact con:[SELECT Id, AccountId FROM Contact WHERE Id IN :contactMap.keyset() AND AccountId != NULL])
{
acclisttoUpdate.add(new Account(id = con.accountid, Number_of_Employees__c = contactMap.get(con.Id)));
}
if(acclisttoUpdate.size() > 0){
update acclisttoUpdate;
}
}
}
Test Class:-
@isTest
private class Test_SurveyResponseUpdate {
private static testMethod void doTest() {
Account testAccount = new Account();
testAccount.Name='Test Account' ;
insert testAccount;
List<Account> listAccount = new List<Account>();
update listAccount;
Contact cont = new Contact();
cont.FirstName='Test';
cont.LastName='Test';
cont.Accountid= testAccount.id;
insert cont;
List<Contact> listCont = new List<Contact>();
SurveyQuestion survQuestion = new SurveyQuestion();
SurveyResponse survResponse = new SurveyResponse();
SurveyQuestionChoice survQuestChoice = new SurveyQuestionChoice();
Test.startTest();
List<SurveyQuestionResponse> survQuestResponse = new List<SurveyQuestionResponse>();
List<id> listId= new List<id>();
SurveyResponseUpdate.updateContactWithResponse(listId);
Test.stopTest();
}
}
I am getting 52% coverage.
Apex Class:-
public class SurveyResponseUpdate{
@InvocableMethod
public static void updateContactWithResponse(List<Id> ResId){
set<Id> ConId = new set<Id>();
set<Id> UserId = new set<Id>();
map<Id, String> contactMap = new map<Id, String>();
for(SurveyQuestionResponse surveyRes:[SELECT id, QuestionId, ResponseId, Response.SubmitterId,
QuestionChoiceId, Question.Name, QuestionChoice.Name
FROM SurveyQuestionResponse
WHERE Id =: ResId])
{
if(surveyRes.Response.SubmitterId != null
&& string.valueOf(surveyRes.Response.SubmitterId).startswith('003')
&& surveyRes.Question.Name == 'How many employees are in your organization?')
{
contactMap.put(surveyRes.Response.SubmitterId, surveyRes.QuestionChoice.Name);
}
}
List<Account> acclisttoUpdate = new List<Account>();
for(Contact con:[SELECT Id, AccountId FROM Contact WHERE Id IN :contactMap.keyset() AND AccountId != NULL])
{
acclisttoUpdate.add(new Account(id = con.accountid, Number_of_Employees__c = contactMap.get(con.Id)));
}
if(acclisttoUpdate.size() > 0){
update acclisttoUpdate;
}
}
}
Test Class:-
@isTest
private class Test_SurveyResponseUpdate {
private static testMethod void doTest() {
Account testAccount = new Account();
testAccount.Name='Test Account' ;
insert testAccount;
List<Account> listAccount = new List<Account>();
update listAccount;
Contact cont = new Contact();
cont.FirstName='Test';
cont.LastName='Test';
cont.Accountid= testAccount.id;
insert cont;
List<Contact> listCont = new List<Contact>();
SurveyQuestion survQuestion = new SurveyQuestion();
SurveyResponse survResponse = new SurveyResponse();
SurveyQuestionChoice survQuestChoice = new SurveyQuestionChoice();
Test.startTest();
List<SurveyQuestionResponse> survQuestResponse = new List<SurveyQuestionResponse>();
List<id> listId= new List<id>();
SurveyResponseUpdate.updateContactWithResponse(listId);
Test.stopTest();
}
}
I am getting 52% coverage.
Procurement Executive
Anyone?