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
Tanmay SahaiTanmay Sahai 

Help with writing a Test Class for an Event Trigger

Hi All,

I am seeking help to write a Test Class for atleast 75% code coverage for my Trigger which I have written for Event. Below is my Trigger code:

trigger EventTrigger on Event (after update)
{

    List<opportunity> opportunities = new List<opportunity>();
    //List<Id> idAccountList = new List<Id>();
    List<Event> eventToprocessList = new List<Event>();
    String eventType;
    List<String> oppEventIdList = new List<String>();
    String sBreak = '</br>';
    
    for(Event event :Trigger.new)
    {
        eventType = event.Event_Type__c;
                if(!event.Event_Type__c.containsIgnoreCase('Demo') || event.Demo_Status__c != 'Complete')continue;
                //if(eventType!=NULL && eventType.containsIgnoreCase('email') )
            //if(event.WhatId!=NULL && event.WhatId.getSObjectType() == Account.SObjectType )
                //eventToprocessList.add(event);
                //if(!idAccountList.contains(event.whatid))
                    //idAccountList.add(event.WhatId);
          //if(event.WhatId.getSObjectType() != Account.SObjectType) continue;
        
        //idAccountList.add(event.WhatId);
        eventToprocessList.add(event);
        oppEventIdList.add(event.Id);
     }
   
       Set<String> eventIdSet = new Set<String>();
       for(Opportunity opp : [SELECT Id, Event_ID__c FROM Opportunity WHERE Event_ID__c = : oppEventIdList])
       {
           eventIdSet.add(opp.Event_ID__c);
       }
       
    //if(idAccountList.isEmpty()) return;
    
    //Map<Id, Account> accountMap = new Map<Id, Account>([SELECT Id, Name FROM Account WHERE Id IN :idAccountList]);
                   
    
    //Account[] AccNames=[select name from account where id in :idAccountList];
    //map<string,string> AcccountMap= new map<string,string>();
    //for(integer i=0;i<AccNames.size();i++){
        //AcccountMap.put(idAccountList[i],AccNames[i].name );
   
    
    for(Event event : eventToprocessList)
    {
    
        if(!eventIdSet.IsEmpty() && eventIdSet.contains(event.Id)) continue;
        
        //system.debug(accountMap.get(event.whatid));
        //Creating opppty
        opportunity opp = new opportunity();
            opp.Name = event.Subj_del__c + ' ' + '| RP |'+ ' ' + event.Seats__c + ' ' + 'Seats';
            //Name = 'Test oppp'+ 'Amount'+'(event.Id).Contact_Lookup__c',
            opp.CloseDate = Date.Today()+ 90;
            opp.Type = 'New Business';
            //Notes__c = Trigger.newMap.get(event.Id).Notes__c,
            //opp.Notes_del__c = Trigger.newMap.get(event.WhoI).Sample_Note__c;
                        //fill other mandatory fields comma seperated as shown above
            //opp.AccountId = event.WhatId;
            opp.AccountId = Trigger.newMap.get(event.Id).AccountId;
            //Contact_Lookup__c = Trigger.newMap.get(event.Id).Contact_Lookup__c,
            opp.StageName = 'Pre-Qualified';
            opp.Referring_SDR__c= event.OwnerId;
            opp.Contact_Name__c = event.Related_Contact_Name__c;
            opp.opportunity_Owner__c= event.Assigned_AE__c;
            opp.Notes_del__c = event.Post_Demo_Notes__c + event.Pre_Demo_Notes__c;
            opp.Pre_Demo_Notes__c = Trigger.newMap.get(event.Related_Contact_Name__c).Pre_Demo_Notes__c+''+event.Pre_Demo_Notes__c;  
            opp.Post_Demo_Notes__c = Trigger.newMap.get(event.Related_Contact_Name__c).Post_Demo_Notes__c+''+event.Post_Demo_Notes__c;
            opp.Amt__c= event.Amount__c;
            opp.Seat_Number__c= event.Seats__c;
            opp.LeadSource= event.Lead_Source__c;
            opp.New_Lead_Source__c= event.New_Lead_Source__c;
            
            //opp.LeadSource = Trigger.newMap.get(event.WhoId).Lead_Source__c;
            //opp.New_Lead_Source__c= Trigger.newMap.get(event.WhoId).New_Lead_Source__c;
            opp.Contact_Name__c = event.WhoId;
            opp.Event_ID__c = event.Id;
            //opp.Account_Name__c = Trigger.newMap.get(event.WhoId).Account;
        
         opportunities.add(opp);
    }
    system.debug('List of Records to be Created: '+opportunities);
    
    if(opportunities.size()>0)
    {
        insert opportunities;
    }
  }

Also can someone help me the code bulkification of the trigger.

Await your responses!

Thanks!!