You need to sign in to do that
Don't have an account?
Vasu.P
How to Write a Test Class that covers the Single email Message in Trigger
Hi All,
trigger SendNotification on Savings_Risk_Checklist__c (After insert,after update) {
for(Savings_Risk_Checklist__c SCS :trigger.new) {
if (Trigger.isAfter && (Trigger.IsInsert || Trigger.IsUpdate)) {
string str = '';
str='<html>';
str=str+'<body>';
str=str+'<p> Hello,<br/> </p>';
str=str+'<p> This notification is to inform you that a Sales Leader has just submitted a Savings Risk Checklist form. Please follow the link below to review the form. <br/> </p>';
str=str+'<p> '+
SCS.Savings_Risk_Checklist_Link__c+' <br/> </p>';
str=str+'<p> If you have any issues accessing the link or form, please contact Melissa Umeda (melissa.umeda@cbre.com). <br/> </p>';
str=str+'<p>Thanks,<br/> </p>';
str=str+'<p>GWS Salesforce Operations Team<br/> </p>';
str=str+'</body>';
str=str+'</html>';
if(SCS.Savings_Checklist_Form_Status__c =='Proposal Submitted'|| SCS.Savings_Checklist_Form_Status__c=='Final From Submitted') {
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
//EmailTemplate et=[Select id from EmailTemplate where Name=:'Savings Risk Check List Proposal Submittion'];
//mail.setWhatId(SCS.ID);
mail.setTargetObjectId(userinfo.getUserId());
//mail.setTemplateId(et.id);
mail.setTargetObjectId(SCS.CreatedById);
mail.setTreatTargetObjectAsRecipient(false);
mail.setToAddresses(new List<String>{'Test@gmail.com'});
mail.setSaveAsActivity(false);
mail.setHtmlBody(str);
Messaging.SendEmailResult [] r = Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail});
}
}
}
}
Can Any one Suggests how can write a Test class for Above Trigger,
Thanks,
trigger SendNotification on Savings_Risk_Checklist__c (After insert,after update) {
for(Savings_Risk_Checklist__c SCS :trigger.new) {
if (Trigger.isAfter && (Trigger.IsInsert || Trigger.IsUpdate)) {
string str = '';
str='<html>';
str=str+'<body>';
str=str+'<p> Hello,<br/> </p>';
str=str+'<p> This notification is to inform you that a Sales Leader has just submitted a Savings Risk Checklist form. Please follow the link below to review the form. <br/> </p>';
str=str+'<p> '+
SCS.Savings_Risk_Checklist_Link__c+' <br/> </p>';
str=str+'<p> If you have any issues accessing the link or form, please contact Melissa Umeda (melissa.umeda@cbre.com). <br/> </p>';
str=str+'<p>Thanks,<br/> </p>';
str=str+'<p>GWS Salesforce Operations Team<br/> </p>';
str=str+'</body>';
str=str+'</html>';
if(SCS.Savings_Checklist_Form_Status__c =='Proposal Submitted'|| SCS.Savings_Checklist_Form_Status__c=='Final From Submitted') {
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
//EmailTemplate et=[Select id from EmailTemplate where Name=:'Savings Risk Check List Proposal Submittion'];
//mail.setWhatId(SCS.ID);
mail.setTargetObjectId(userinfo.getUserId());
//mail.setTemplateId(et.id);
mail.setTargetObjectId(SCS.CreatedById);
mail.setTreatTargetObjectAsRecipient(false);
mail.setToAddresses(new List<String>{'Test@gmail.com'});
mail.setSaveAsActivity(false);
mail.setHtmlBody(str);
Messaging.SendEmailResult [] r = Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail});
}
}
}
}
Can Any one Suggests how can write a Test class for Above Trigger,
Thanks,
I believe the below code is enough to get the complete code coverage, Take below points into consideration.
Actually in the Above code 'Savings_Checklist_Form_Status__c' is a formula field in 'Savings_Risk_Checklist__c' from Opportunity.
i have master detail Relation ship to Opportunity. so when i tried to insert record with this field error giving 'Field Not writable'.
Could you please check the below test class,
@Istest(SeeAllData=True)
private class SendNotificationTest{
public static testMethod void SendNotificationStaticTestMethod()
{
Account a = NEW Account();
a.Name = 'Test Account';
insert a;
Opportunity o = NEW Opportunity();
o.AccountId = a.Id;
o.Name = 'Test Opportunity';
o.Contract_Expiration_Date__c =system.Today()
o.Savings_Checklist_Form_Status__c='Proposal Submitted';
insert o;
o.Savings_Checklist_Form_Status__c='Final Form Submitted';
Update o;
Savings_Risk_Checklist__c SCSList = new Savings_Risk_Checklist__c();
SCSList.Opportunity_Name__c=o.ID;
Messaging.SingleEmailMessage Testemail;
List<Messaging.SendEmailresult> Testemailresults;
insert SCSList;
// Below data covers if you trigger logic for outgoing email
// That will be decided based on flag Incoming (default is false)
EmailMessage outGoingMail= new EmailMessage();
outGoingMail.fromaddress='test@test.com';
outGoingMail.toAddress = 'con1.Email';
outGoingMail.subject = 'Opt Out Test Message';
outGoingMail.TextBody= 'This is the message body BR-Interno.';
outGoingMail.parentid=SCSList.id;
insert outGoingMail;
}
}
It's Giving the 65% Code coverage.
Thanks,