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
Shiva VenuShiva Venu 

Test Class for Campaign Member Trigger

Need help with test class for the below trigger
 
trigger updateCampaignTypeonLead on CampaignMember (after insert) {
 set<Id> leadIds = new set<Id>();
              
        list<Lead> leadList = new list<Lead>();
        set<Id> campIds = new set<Id>();
        
        map<Id, CampaignMember> leadCampaign = new map<Id, CampaignMember>();  
    
        for (CampaignMember camMember : System.Trigger.New)
        {
            leadIds.add(camMember.LeadId);
            
            campIds.add(camMember.CampaignId);
            
            leadCampaign.put(camMember.LeadId, camMember);
        
        }

 map<Id,Campaign> campmap = new map <Id,Campaign>([select Id, Type from Campaign where id in: campIds]);
 
 for(Lead thisLead : [Select Id, Campaign_Type__c from Lead where Id in : leadIds and isConverted=false])
        {
          
          Campaign camp = campmap.get(leadCampaign.get(thisLead.Id).CampaignId);    

            thisLead.Campaign_Type__c = camp.Type;
            Update thisLead;
            
                       }

}

 
Best Answer chosen by Shiva Venu
Maharajan CMaharajan C
Hi Shiva,

Please try the below test class:

Add if there is any required fields are to create Lead, Campaign , Cam Member in below.
 
@isTest
public class updateCampaignTypeonLeadTest {
    @isTest static void testCamMemberInsert(){
        Lead led = new Lead();
        led.FirstName = 'Test';
        led.LastName = 'SF Lead';
        led.Email = 'testSF@Salesforce.com';
        led.Company = 'Salesforce';
        led.Industry = 'Agriculture';
        led.Status = 'Open';
        insert led;         
        
        Campaign ca1 = new Campaign();
        ca1.Name = 'Testcampaign';
        ca1.IsActive = TRUE;
        ca1.Type = 'Email';
        insert ca1;
        
        CampaignMember m1 = new CampaignMember();
        m1.leadId = led.Id; 
        m1.CampaignId = ca1.Id;
        m1.Status ='Sent';
        
        Test.StartTest();
        insert m1;
        Test.stopTest(); 	
        
        Lead ld = [Select Id,Campaign_Type__c from Lead where Id =: led.Id limit 1];
        system.assertEquals('Email', ld.Campaign_Type__c);
        
    }
    
}

Thanks,
Maharajan.C

All Answers

Maharajan CMaharajan C
Hi Shiva,

Please try the below test class:

Add if there is any required fields are to create Lead, Campaign , Cam Member in below.
 
@isTest
public class updateCampaignTypeonLeadTest {
    @isTest static void testCamMemberInsert(){
        Lead led = new Lead();
        led.FirstName = 'Test';
        led.LastName = 'SF Lead';
        led.Email = 'testSF@Salesforce.com';
        led.Company = 'Salesforce';
        led.Industry = 'Agriculture';
        led.Status = 'Open';
        insert led;         
        
        Campaign ca1 = new Campaign();
        ca1.Name = 'Testcampaign';
        ca1.IsActive = TRUE;
        ca1.Type = 'Email';
        insert ca1;
        
        CampaignMember m1 = new CampaignMember();
        m1.leadId = led.Id; 
        m1.CampaignId = ca1.Id;
        m1.Status ='Sent';
        
        Test.StartTest();
        insert m1;
        Test.stopTest(); 	
        
        Lead ld = [Select Id,Campaign_Type__c from Lead where Id =: led.Id limit 1];
        system.assertEquals('Email', ld.Campaign_Type__c);
        
    }
    
}

Thanks,
Maharajan.C
This was selected as the best answer
Hunhis WilliaHunhis Willia
Try adding best basketball betting site (https://www.bambet.com/en-AU/basketball) @isTest
public class updateCampaignTypeonLeadTest {
     @isTest static void testCamMemberInsert() {
         Lead Leader = new Lead()