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
Sachin Sankad.ax1650Sachin Sankad.ax1650 

Test Class for trigger

Hi All,

Here by i'm adding my trigger & triggerHandler class that i have written. Can anybody give me TestClass for this?Urgent reply needed.


Trigger :-

trigger CreateContractTrigger on Opportunity (after update)
    CreateContractTriggerHandler ccth = new CreateContractTriggerHandler();


Trigger Handler Class :-

public with sharing class CreateContractTriggerHandler
    public List<Contract> contractsList;
    public List<Opportunity> opportunityEligibleList = new List<Opportunity>();
    public void onChangeStageUpdate(List<Opportunity> opportunityList, Map<Id, Opportunity> opportunityOldMap)
        contractsList = new List<Contract>();
        List<Opportunity> opportunityEligibleList = new List<Opportunity>();
        Map<String,list<OpportunityLineItem>> opportunityToOppLineItemMap = new Map <String,list<OpportunityLineItem>>();
        for(Opportunity opportunity : opportunityList)
            Opportunity opportunityOld = new Opportunity();
          if (opportunityOldMap.containsKey(opportunity.Id))
                opportunityOld = opportunityOldMap.get(opportunity.Id);
            if(opportunityOld.StageName != opportunity.StageName && opportunity.StageName =='Closed Won')
        list<OpportunityLineItem> opportunityLineItemList = [select id,CreatedDate,ServiceDate,OpportunityId from OpportunityLineItem
                                                                                                            where OpportunityId in :opportunityEligibleList];
        for (OpportunityLineItem opplineItem : opportunityLineItemList)
             if (opportunityToOppLineItemMap.containsKey(opplineItem.OpportunityId))
                 opportunityToOppLineItemMap.put(opplineItem.OpportunityId,new list<OpportunityLineItem>{opplineItem});
        for(Opportunity opportunity : opportunityEligibleList)
                OpportunityLineItem oppLineItem = opportunityToOppLineItemMap.get([0];
                Contract con = new Contract();
                con.Opportunity__c = opportunity.Id;
                con.AccountId = opportunity.AccountId;
                System.debug('Contract Account Id======='+con.AccountId);
                con.Status ='Draft';
                con.CurrencyIsoCode =' NZD ';
               con.StartDate = oppLineItem.ServiceDate;
                con.Rolling_Contract__c = ' Rolling Contract ';
                con.Description ='Test';
                System.debug('contract created========');
        insert contractsList;


This trigger is written to create contract on opportunity whose stage field is updated to Closed Won.

Best Answer chosen by Admin (Salesforce Developers) 
Jeff MayJeff May

just create a testmethod in your handler class and create an Opportunity, then update the Opp.  This will fire the trigger.