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
Conor Bradley 5Conor Bradley 5 

apex trigger unit test

Hi 
Could someone help me write a apex unit test for the following trigger. I am new to apex.
trigger acceptedspeakerroles on CampaignMember (after insert, after update, after delete, after undelete) {
Map<Id,Contact> contacts = new Map<Id,Contact>();
  if(Trigger.new<>null)
    for(CampaignMember c:Trigger.new)
      if(c.ContactId<>null)
        contacts.put(c.ContactId,new Contact(id=c.ContactId));
  if(Trigger.old<>null)
    for(CampaignMember c:Trigger.old)
      if(c.ContactId<>null)
        contacts.put(c.ContactId,new Contact(id=c.ContactId));
  update contacts.values();
}


Many Thanks
Conor

Best Answer chosen by Conor Bradley 5
Ajay K DubediAjay K Dubedi
Hi Conor,

Try the following code, it may be helpful for you:
@IsTest
public class acceptedspeakerroles_Test {
    @IsTest
    public static void method1(){
        
        Account acct = new Account ();
        acct.Name='test';
        insert acct;

        Contact co1 = new Contact();
        co1.FirstName = 'First';
        co1.LastName = 'Last';
        co1.AccountId = acct.Id;
        insert  co1;

        Campaign ca1 = new Campaign();
        ca1.Name = 'Testcampaign';
        ca1.IsActive = TRUE;
        insert ca1;

        CampaignMember m1 = new CampaignMember();
        m1.ContactId = co1.Id; 
        m1.CampaignId = ca1.Id;
        
        insert m1;
        m1.Status ='Attended';
        update m1;
    }
}


I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.

Thanks,
Ajay Dubedi

All Answers

Ajay K DubediAjay K Dubedi
Hi Conor,

Try the following code, it may be helpful for you:
@IsTest
public class acceptedspeakerroles_Test {
    @IsTest
    public static void method1(){
        
        Account acct = new Account ();
        acct.Name='test';
        insert acct;

        Contact co1 = new Contact();
        co1.FirstName = 'First';
        co1.LastName = 'Last';
        co1.AccountId = acct.Id;
        insert  co1;

        Campaign ca1 = new Campaign();
        ca1.Name = 'Testcampaign';
        ca1.IsActive = TRUE;
        insert ca1;

        CampaignMember m1 = new CampaignMember();
        m1.ContactId = co1.Id; 
        m1.CampaignId = ca1.Id;
        
        insert m1;
        m1.Status ='Attended';
        update m1;
    }
}


I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.

Thanks,
Ajay Dubedi
This was selected as the best answer
Conor Bradley 5Conor Bradley 5
Thanks Ajay

Very Helpful!! :)

Conor