You need to sign in to do that
Don't have an account?
Swami Deshanel
Mass Convert Trigger Test Class Code Coverage
I have a trigger for converting leads but I can not get the code coverage past 26%. Please Help
Trigger:
trigger AutoConvert on Lead (after update) {
list<Lead> LeadsToConvert = new list<Lead>();
for(Lead myLead: Trigger.new){
if(!myLead.isConverted && myLead.status=='Consult to be Scheduled' )
LeadsToConvert.add(myLead);
}
list<Database.LeadConvert> leadConverts = new list<Database.LeadConvert>();
for(Lead myLead : LeadsToConvert){
Database.LeadConvert lc = new database.LeadConvert();
lc.setLeadId(myLead.Id);
lc.convertedStatus = 'Consult to be Scheduled';
//Database.ConvertLead(lc,true);
lc.setDoNotCreateOpportunity(False);
leadConverts.add(lc);
}
if(!leadConverts.isEmpty()){
for(Integer i = 0; i <= leadConverts.size()/100 ; i++){
list<Database.LeadConvert> tempList = new list<Database.LeadConvert>();
Integer startIndex = i*100;
Integer endIndex = ((startIndex+100) < leadConverts.size()) ? startIndex+100: leadConverts.size();
for(Integer j=startIndex;j<endIndex;j++){
tempList.add(leadConverts[j]);
}
Database.LeadConvertResult[] lcrList = Database.convertLead(tempList, false);
for(Database.LeadConvertResult lcr : lcrList)
System.assert(lcr.isSuccess());
}
}
}
Trigger:
trigger AutoConvert on Lead (after update) {
list<Lead> LeadsToConvert = new list<Lead>();
for(Lead myLead: Trigger.new){
if(!myLead.isConverted && myLead.status=='Consult to be Scheduled' )
LeadsToConvert.add(myLead);
}
list<Database.LeadConvert> leadConverts = new list<Database.LeadConvert>();
for(Lead myLead : LeadsToConvert){
Database.LeadConvert lc = new database.LeadConvert();
lc.setLeadId(myLead.Id);
lc.convertedStatus = 'Consult to be Scheduled';
//Database.ConvertLead(lc,true);
lc.setDoNotCreateOpportunity(False);
leadConverts.add(lc);
}
if(!leadConverts.isEmpty()){
for(Integer i = 0; i <= leadConverts.size()/100 ; i++){
list<Database.LeadConvert> tempList = new list<Database.LeadConvert>();
Integer startIndex = i*100;
Integer endIndex = ((startIndex+100) < leadConverts.size()) ? startIndex+100: leadConverts.size();
for(Integer j=startIndex;j<endIndex;j++){
tempList.add(leadConverts[j]);
}
Database.LeadConvertResult[] lcrList = Database.convertLead(tempList, false);
for(Database.LeadConvertResult lcr : lcrList)
System.assert(lcr.isSuccess());
}
}
}
All Answers
@isTest
public class TestAutoLeadConvert{
static testMethod void convertLead(){
test.startTest();
Lead lead = new Lead();
lead.FirstName='Trigger1';
lead.LastName='Test1';
lead.Company='Trigger Test1';
lead.isConverted = false;
lead.Status='Consult to be Scheduled';
insert lead;
System.debug('Created and inserted lead');
Database.LeadConvert lc = new database.LeadConvert();
lc.setLeadId(lead.Id);
LeadStatus convertStatus = [SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1];
lc.setConvertedStatus(convertStatus.MasterLabel);
Database.LeadConvertResult lcr = Database.convertLead(lc);
// Make sure conversion was successful
System.assert(lcr.isSuccess());
test.stopTest();
}
}
Try this:
static testMethod void convertLead(){
test.startTest();
Lead lead = new Lead();
lead.FirstName='Trigger1';
lead.LastName='Test1';
lead.Company='Trigger Test1';
lead.isConverted = false;
lead.Status='Consult to be Scheduled';
insert lead;
lead dbItem = [SELECT Id, LastName FROM Lead WHERE Id =:lead.Id];
dbItem.LastName = 'Doe';
update dbItem;
test.stopTest();
}