Salesforce apex Inboung email test class
Main class :
global class EmailCatcherHandler implements Messaging.InboundEmailHandler {
global Messaging.InboundEmailResult handleInboundEmail(Messaging.InboundEmail email, Messaging.InboundEnvelope envelope) {
Messaging.InboundEmailResult result = new Messaging.InboundEmailresult();
string emailBody = email.subject;
System.debug('email.subject --- '+email.subject);
list<string> emailSplits = emailBody.split('-');
string caseNum = emailSplits[1];
caseNum = caseNum.trim();
Case caseRecord = [Select id from Case where caseNumber =: caseNum];
Task tObj = new Task();
tObj.Subject = emailSplits[0];
tObj.Status = 'Completed';
tobj.ActivityDate= System.today();
tObj.whatId = caseRecord.Id;
tobj.Description = email.PlainTextBody.length() > 255 ? email.PlainTextBody.substring(0,244) : email.PlainTextBody;
insert tObj;
return result;
}
}
===============================================
test class :
@isTest
public class EmailCatcherHandlerTest {
@isTest
static void TestinBoundEmail(){
Account a= New Account(Acc_FundingStatus__c='Fund',Name='Person Account Org',RecordTypeId=Schema.SObjectType.Account.getRecordTypeInfosByName().get('Organisation').getRecordTypeId());
insert a;
Entitlement ent = new Entitlement(Name='Testing', AccountId=a.Id,
StartDate=Date.valueof(System.now().addDays(-2)), EndDate=Date.valueof(System.now().addYears(2)));
insert ent;
case c= new case(Type='Claims',Origin='Email',Resolver_Group__c='Claims',Case_Sub_Type__c='Claims Query',Priority='Medium',Status='New',AccountId=a.Id);
insert c;
Case caseObject = [SELECT id,CaseNumber FROM Case WHERE Id = :c.Id];
Messaging.InboundEmail email = new Messaging.InboundEmail() ;
Messaging.InboundEnvelope env = new Messaging.InboundEnvelope();
List<string> emails = new List<string>{'testbandi@test.com','testbandi123@test.com'};
email.subject = 'Create notification-'+caseObject.CaseNumber;
email.fromAddress = 'someaddress@test.com';
email.toAddresses = emails;
email.plainTextBody = 'email body';
EmailCatcherHandler testInbound=new EmailCatcherHandler ();
testInbound.handleInboundEmail(email, env);
}
}
Comments
Post a Comment