• Seth Roger
  • NEWBIE
  • 0 Points
  • Member since 2016

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 0
    Questions
  • 1
    Replies
Hello
I wrote a trigger that sends an email order confirmation to the contact when an order object is inserted. However, I need to write a test calss for the code coverage. I am not sure how to do such a test. Any help will be apprecated. Thanks in advance.

Here is my trigger
trigger OrderConfirmatiob on Order (before insert) {
        
        for(Order o : Trigger.New) {
        if(o.Contact_Email__c != NULL){
   
          List<Messaging.SingleEmailMessage> emails = new List<Messaging.SingleEmailMessage>();
            Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();                    
 
            String[] toAddresses = new String[] {o.Contact_Email__c};
 
            mail.setToAddresses(toAddresses);
 
            mail.setSubject('Automated email: Order Confirmation');
            //mail.setTargetObjectId(o.Id);
            //mail.setSaveAsActivity(false);
            mail.setHtmlBody('Some Message' );
            //mail.setTemplateId(et.Id);

         emails.add(mail);
         Messaging.sendEmail(emails);
              //Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });

        }
       }
    }

Here is what I have so far for the test class but it is not finished.

@isTest

private class TestOrderConfirmationEmail {

 public static void sendMail(string message) {

        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        String[] toAddresses = new String[] {'liam@shaverinc.com'};
        mail.setToAddresses(toAddresses);

        mail.setSubject('My Subject');

        mail.setUseSignature(false);
        mail.setHtmlBody(message);

        // Send the email
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });

    }   


    
    static testMethod void TestOrderEmail(){
        Account A = new Account(Name='ttt');
        insert A;


        Date myDate = Date.newInstance(2016, 2, 17);

        //Create a order
        Order od = new Order();
        od.P_O_No__c = 'testponumber';
        od.Order_Stage__c='Open';
        od.Account.id=A.id;
        od.EffectiveDate=myDate;
        
        Test.startTest();
        sendMail('This is a test');
        insert od;
        Test.stopTest();
    }
}

Not sure how to test such a email trigger.