You need to sign in to do that
Don't have an account?
Krishna Sahu 1
Please help me to write test class on before insert
public static void resistDuplicateRecordName(List<Lead> listLeads){
map<String, Lead> mapExistingRecordLead = new map<String, Lead>();
Set<String> setOfFirstName = new Set<String>();
Set<String> setOfMiddleName = new Set<String>();
Set<String> setOfLastName = new Set<String>();
Set<Date> setOfDob = new Set<Date>();
Set<String> setOfMobileNumber = new Set<String>();
for(Lead objeLead : listLeads){
if(objeLead.HealthCloudGA__BirthDate__c != null && objeLead.MobilePhone != null){
setOfFirstName.add(objeLead.FirstName);
setOfMiddleName.add(objeLead.MiddleName);
setOfLastName.add(objeLead.LastName);
setOfDob.add(objeLead.HealthCloudGA__BirthDate__c);
setOfMobileNumber.add(objeLead.MobilePhone);
}
}
for(Lead objeLead : [SELECT Id , Name , FirstName, MiddleName, MobilePhone, LastName , HealthCloudGA__BirthDate__c
FROM Lead
WHERE FirstName =:setOfFirstName AND MiddleName =:setOfMiddleName AND LastName=:setOfLastName
AND HealthCloudGA__BirthDate__c =:setOfDob AND MobilePhone =:setOfMobileNumber]){
System.debug('HealthCloudGA__BirthDate__c '+objeLead.HealthCloudGA__BirthDate__c);
System.debug('MobilePhone '+objeLead.MobilePhone);
System.debug('MobilePhone '+objeLead.Name);
String leadkey = String.valueOf(objeLead.HealthCloudGA__BirthDate__c)+'-'+ String.valueOf(objeLead.MobilePhone) + '-'
+ objeLead.FirstName + objeLead.MiddleName + objeLead.LastName;
mapExistingRecordLead.put(leadkey, objeLead);
}
for(Lead newLeadRecord : listLeads){
String leadkey = String.valueOf(newLeadRecord.HealthCloudGA__BirthDate__c) + '-' + String.valueOf(newLeadRecord.MobilePhone) + '-'
+ newLeadRecord.FirstName + newLeadRecord.MiddleName + newLeadRecord.LastName;
if(mapExistingRecordLead.containsKey(leadKey)){
newLeadRecord.FirstName.addError(Label.duplicate_record_candidate);
}
}
}
map<String, Lead> mapExistingRecordLead = new map<String, Lead>();
Set<String> setOfFirstName = new Set<String>();
Set<String> setOfMiddleName = new Set<String>();
Set<String> setOfLastName = new Set<String>();
Set<Date> setOfDob = new Set<Date>();
Set<String> setOfMobileNumber = new Set<String>();
for(Lead objeLead : listLeads){
if(objeLead.HealthCloudGA__BirthDate__c != null && objeLead.MobilePhone != null){
setOfFirstName.add(objeLead.FirstName);
setOfMiddleName.add(objeLead.MiddleName);
setOfLastName.add(objeLead.LastName);
setOfDob.add(objeLead.HealthCloudGA__BirthDate__c);
setOfMobileNumber.add(objeLead.MobilePhone);
}
}
for(Lead objeLead : [SELECT Id , Name , FirstName, MiddleName, MobilePhone, LastName , HealthCloudGA__BirthDate__c
FROM Lead
WHERE FirstName =:setOfFirstName AND MiddleName =:setOfMiddleName AND LastName=:setOfLastName
AND HealthCloudGA__BirthDate__c =:setOfDob AND MobilePhone =:setOfMobileNumber]){
System.debug('HealthCloudGA__BirthDate__c '+objeLead.HealthCloudGA__BirthDate__c);
System.debug('MobilePhone '+objeLead.MobilePhone);
System.debug('MobilePhone '+objeLead.Name);
String leadkey = String.valueOf(objeLead.HealthCloudGA__BirthDate__c)+'-'+ String.valueOf(objeLead.MobilePhone) + '-'
+ objeLead.FirstName + objeLead.MiddleName + objeLead.LastName;
mapExistingRecordLead.put(leadkey, objeLead);
}
for(Lead newLeadRecord : listLeads){
String leadkey = String.valueOf(newLeadRecord.HealthCloudGA__BirthDate__c) + '-' + String.valueOf(newLeadRecord.MobilePhone) + '-'
+ newLeadRecord.FirstName + newLeadRecord.MiddleName + newLeadRecord.LastName;
if(mapExistingRecordLead.containsKey(leadKey)){
newLeadRecord.FirstName.addError(Label.duplicate_record_candidate);
}
}
}
Can you try the below test class. This will give you 100% coverage
Just replace 'Duplicate lead record' with the value which you have in the custom label.
Let me know if you face any error.
If this solution helps, Please mark it as best answer.
Thanks,