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
Dilip Kulkarni 6Dilip Kulkarni 6 

test class (case trigger)

Hi Experts,
I need test class for the trigger given below:

trigger Casetrigger on Case (after insert) {

 list<Account> accList = new list<Account>();

 for(case c: Trigger.new){
      if(c.account!= null)
       accList.add(c.account);
     }
     
    //query email address from account object.
     
   Map<id,String> insideSalesEmailMap = new Map<Id, String>();
     for(Account acc: [select id,thermage_tlr__Rep_2__r.email from Account where id IN :accList]){
            insideSalesEmailMap.put(acc.id, acc.thermage_tlr__Rep_2__r.email);
        }  
        
        // preparing for Email send out. 
        
         List<Messaging.SingleEmailMessage> sme = new List<Messaging.SingleEmailMessage>();
     for(case c: Trigger.new){
      Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
      //email.setTemplateId('00X500000013avG');
      email.setToAddresses(new List<String>{insideSalesEmailMap.get(c.accountId)});
      email.setPlaintextbody('Test');
      email.setSaveAsActivity(false);
      sme.add(email);
     }
     
      //send Email
      
     if(sme != null && sme.size() > 0){
      Messaging.sendEmail(sme);
  }
     
}

Please help.
Best Answer chosen by Dilip Kulkarni 6
Suresh(Suri)Suresh(Suri)
Hi Dilip,

Can you try below code for test class
 
@IsTest
private class CasetriggerTest {

    static testmethod void testemail()
    {
        thermage_tlr_Rep_2__c ttr = new thermage_tlr_Rep_2__c(Name='Test',email__c='abc@test.com');
        insert ttr;
        Account acc = new Account(Name='TestAcc',thermage_tlr_Rep_2__c=ttr.id);
        insert acc;
        Case cse = new Case(subject='Test', Accountid=acc.id);
        insert cse;
    }
}



And also you need to try the casetrigger like this
 
trigger Casetrigger on Case (after insert) {

 Set<Id> aid = new Set<Id>();

 for(case c: Trigger.new){
      if(c.accountid!= null)
       aid.add(c.accountid);
     }
     
    //query email address from account object.
     
   Map<id,String> insideSalesEmailMap = new Map<Id, String>();
     for(Account acc: [select id, thermage_tlr_Rep_2__r.email__c from Account where id IN :aid]){
            insideSalesEmailMap.put(acc.id, acc.thermage_tlr_Rep_2__r.email__c);
        }  
        
        // preparing for Email send out. 
        
         List<Messaging.SingleEmailMessage> sme = new List<Messaging.SingleEmailMessage>();
     for(case c: Trigger.new){
      Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
      //email.setTemplateId('00X500000013avG');
      email.setToAddresses(new List<String>{insideSalesEmailMap.get(c.accountId)});
      email.setPlaintextbody('Test');
      email.setSaveAsActivity(false);
      sme.add(email);
     }
     
      //send Email
      
     if(sme != null && sme.size() > 0){
         //if(Test.isRunningTest()){
              Messaging.sendEmail(sme);
         //}
  }
     
}

May be it will help :)