You need to sign in to do that
Don't have an account?
Tanmay 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!!
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!!