function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Krishna Sahu 1Krishna Sahu 1 

Need help to write test class on the classs

public static void leadConversion(List<flowInputs> leadIdSet){
        System.debug('This is the lead Id from Convert Lead Flow===>'+leadIdSet[0]);
        Map<Id, Case> mapCases = new Map<Id, Case>();
        List<CaseTeamMember> listCaseTeamMember = new List<CaseTeamMember>();
        List<Database.LeadConvert> leadsToConvert = new List<Database.LeadConvert>();
        for(Id leadId: leadIdSet[0].ids){
            Database.LeadConvert newConvertLead = new Database.LeadConvert();
            newConvertLead.setLeadId(leadId);
            newConvertLead.setDoNotCreateOpportunity(true);
            newConvertLead.setConvertedStatus(leadConvertedStatus);
            leadsToConvert.add(newConvertLead);
        }
        if(!leadsToConvert.isEmpty())
        {
            List<Database.LeadConvertResult> convertResult = Database.convertLead(leadsToConvert);     
            CaseTeamRole caseTeamRole = [SELECT Id,Name FROM CaseTeamRole WHERE Name ='Care Coordinator'  LIMIT 1];
            Set<Id> setAccountIds = new Set<Id>();
            Map<Id, Id> mapAccountIdToContactId = new Map<Id, Id>();
            for(Database.LeadConvertResult convertedLead : convertResult)
            {
                mapAccountIdToContactId.put(convertedLead.getAccountId(), convertedLead.getContactId());
            }
            Map<Id, Account> mapAccounts = new Map<Id, Account>([SELECT Id, OwnerId, 
                                                                            sales_representative__c, Name 
                                                                     FROM Account 
                                                                     WHERE Id IN :mapAccountIdToContactId.keyset() AND sales_representative__c !=null]);
            if(!mapAccounts.isEmpty())
            {
               for(Account accountRecord : mapAccounts.values())
               {
                   if(accountRecord.OwnerId != null && accountRecord.Name !=null)
                   {
                       mapCases.put(accountRecord.Id, new Case(OwnerId = accountRecord.OwnerId, 
                                                            ContactId = mapAccountIdToContactId.get(accountRecord.Id),
                                                            AccountId = accountRecord.Id, 
                                                            Status = 'New', 
                                                            Subject = accountRecord.Name+' Care Plan'));
                   }
               }
               
               insert mapCases.values();
        
               List<CaseTeamMember> lstCareTeamMembers = new List<CaseTeamMember>();
                for(Case objCase : mapCases.values())
                {
                    lstCareTeamMembers.add(new CaseTeamMember(ParentId = objCase.Id, 
                                                              MemberId = mapAccounts.get(objCase.AccountId).sales_representative__c, 
                                                              TeamRoleId = caseTeamRole.Id));
                }
                insert lstCareTeamMembers; 
            }
        }
AnkaiahAnkaiah (Salesforce Developers) 
Hi Krinshna,

Can you share the full class code.??

Thanks!!
 
Krishna Sahu 1Krishna Sahu 1
Hi Ankaish
This is the full code.
Krishna Sahu 1Krishna Sahu 1
@InvocableMethod(label='To Convert Leads')
    public static void leadConversion(List<flowInputs> leadIdSet){
        System.debug('This is the lead Id from Convert Lead Flow===>'+leadIdSet[0]);
        Map<Id, Case> mapCases = new Map<Id, Case>();
        List<CaseTeamMember> listCaseTeamMember = new List<CaseTeamMember>();
        List<Database.LeadConvert> leadsToConvert = new List<Database.LeadConvert>();
        for(Id leadId: leadIdSet[0].ids){
            Database.LeadConvert newConvertLead = new Database.LeadConvert();
            newConvertLead.setLeadId(leadId);
            newConvertLead.setDoNotCreateOpportunity(true);
            newConvertLead.setConvertedStatus(leadConvertedStatus);
            leadsToConvert.add(newConvertLead);
        }
        if(!leadsToConvert.isEmpty())
        {
            List<Database.LeadConvertResult> convertResult = Database.convertLead(leadsToConvert);     
            CaseTeamRole caseTeamRole = [SELECT Id,Name FROM CaseTeamRole WHERE Name ='Care Coordinator'  LIMIT 1];
            Set<Id> setAccountIds = new Set<Id>();
            Map<Id, Id> mapAccountIdToContactId = new Map<Id, Id>();
            for(Database.LeadConvertResult convertedLead : convertResult)
            {
                mapAccountIdToContactId.put(convertedLead.getAccountId(), convertedLead.getContactId());
            }
            Map<Id, Account> mapAccounts = new Map<Id, Account>([SELECT Id, OwnerId, 
                                                                            sales_representative__c, Name 
                                                                     FROM Account 
                                                                     WHERE Id IN :mapAccountIdToContactId.keyset() AND sales_representative__c !=null]);
            if(!mapAccounts.isEmpty())
            {
               for(Account accountRecord : mapAccounts.values())
               {
                   if(accountRecord.OwnerId != null && accountRecord.Name !=null)
                   {
                       mapCases.put(accountRecord.Id, new Case(OwnerId = accountRecord.OwnerId, 
                                                            ContactId = mapAccountIdToContactId.get(accountRecord.Id),
                                                            AccountId = accountRecord.Id, 
                                                            Status = 'New', 
                                                            Subject = accountRecord.Name+' Care Plan'));
                   }
               }
               
               insert mapCases.values();
        
               List<CaseTeamMember> lstCareTeamMembers = new List<CaseTeamMember>();
                for(Case objCase : mapCases.values())
                {
                    lstCareTeamMembers.add(new CaseTeamMember(ParentId = objCase.Id, 
                                                              MemberId = mapAccounts.get(objCase.AccountId).sales_representative__c, 
                                                              TeamRoleId = caseTeamRole.Id));
                }
                insert lstCareTeamMembers; 
            }
        }
    }
    public class flowInputs {
        @InvocableVariable
        public List<Id> ids;
    }
AnkaiahAnkaiah (Salesforce Developers) 
Hi Krishna,

try with below code as an example and try.
 
Public class leadConversionTest {
    @isTest 
    Public static void testLeadconvert(){
	
	 Profile p;
    List<Profile> profileList = [SELECT id FROM profile where NAME like '%sys%'];
    if (profileList.size()>0) 
        p=profileList.get(0); 
    User u = new User(alias = 'kbra', email='kbrazi@noemail.com',
                            emailencodingkey='UTF-8', lastname='Testing', languagelocalekey='fr',
                            localesidkey='fr_FR_EURO', profileid = p.Id, country='France',
                            timezonesidkey='Europe/Paris', username='KBrazi@noemail.com',
                            IsActive = true);
    insert u; 
        
        // Add if there is anyother required fields are in lead creation
        Lead l = new Lead(company = 'Salesforce', LastName='Test SF Lead', Status = 'Open');
        insert l;
		
		//insert case
		
		case c = new case();
		c.subject = 'test';
		insert c;
    CaseTeamRole ctr = new CaseTeamRole();
    ctr=[select Id, AccessLevel from CaseTeamRole where Name like ''Care Coordinator' limit 1];
	
    CaseTeamMember ctmem = new CaseTeamMember();
    ctmem.TeamRoleId = ctr.Id;
    ctmem.MemberId = u.Id;
    ctmem.ParentId = c.Id;
    CTMs.add(ctmem);
		
        
        Apexclass.flowInputs fi = new Apexclass.flowInputs();
        fi.ids = l.Id;

        
        Test.startTest();
        	Apexclass.leadConversion(new List<Apexclass.FlowInputs>{fi});
        Test.stopTest();
    } 
}

If this helps, Please mark it as best answer.

Thanks!!


 
Krishna Sahu 1Krishna Sahu 1
Hi, 
Your codes is not working
 
AnkaiahAnkaiah (Salesforce Developers) 
What is the error.??

You need to insert the proper data  in the test class .

Thanks!!