In last month post we created the "Apex Email Service" . Now in this post we will get to know how to write the test class for Apex Email Service.
global class EmailServiceExample implements Messaging.InboundEmailHandler
{
global Messaging.InboundEmailResult handleInboundEmail(Messaging.inboundEmail email,Messaging.InboundEnvelope env)
{
// Create an InboundEmailResult object for returning the result of the Apex Email Service
Messaging.InboundEmailResult result = new Messaging.InboundEmailResult();
try
{
List<Contact> contList= [SELECT Id, Name, Email FROM Contact WHERE Email = :email.fromAddress LIMIT 1];
Task taskObj = new Task();
taskObj.Description = email.plainTextBody;
taskObj.Priority = 'Normal';
taskObj.Status = 'Inbound Email';
taskObj.Subject = email.subject;
taskObj.IsReminderSet = true;
taskObj.ReminderDateTime = System.now()+1;
if(contList.size()>0)
{
taskObj.WhoId = contList[0].Id;
}
insert taskObj;
}
catch (Exception e)
{
System.debug('Exception : ' + e);
}
result.success = true;
return result;
}
}
Test Class
@isTest
private class EmailServiceExampleTest
{
static testMethod void testUnsubscribe()
{
// Create a new email and envelope object.
Messaging.InboundEmail email = new Messaging.InboundEmail() ;
Messaging.InboundEnvelope env = new Messaging.InboundEnvelope();
// Create Test record.
Contact cont = new Contact(firstName='john', lastName='smith', Email='test@test.com', HasOptedOutOfEmail=false);
insert cont ;
// Test with the subject that matches the unsubscribe statement.
email.subject = 'Test Contact Email';
//email.plainTextBody = 'Test Contact Email';
env.fromAddress = 'test@test.com';
EmailServiceExample obj= new EmailServiceExample();
obj.handleInboundEmail(email, env );
}
}
Let us know if this will help you
Thanks,
Amit Chaudhary
its email.fromaddress = 'test@test.com'
ReplyDeleteA professional email service enhances brand credibility with custom domains and consistent communication. It allows businesses to send personalized messages, automate workflows, and maintain strong relationships with customers through timely and relevant emails.
ReplyDelete