I have the following method in my apex class:
@testVisible
private static Custon_Object_Case__c getExistingRecord(Messaging.InboundEmail email){
List<String> referenceId = email.references;
List<EmailMessage> prevmail = [SELECT RelatedToId from EmailMessage WHERE ThreadIdentifier =: referenceId];
return [SELECT Id FROM Custon_Object_Case__c WHERE Id=: prevmail[0].RelatedToId];
}
This method simply returns the Id of the existing custom object record to which the incoming email belongs to. I wrote the following test method for but it is giving me error:
@IsTest
static void getExistingRecordTest(){
Custon_Object_Case__c testTTCase = new Custon_Object_Case__c();
insert testTTCase;
Messaging.InboundEmail email = new Messaging.InboundEmail() ;
List<String> referenceId = email.references;
EmailMessage email = new EmailMessage();
email.FromAddress = 'test@abc.org';
email.Incoming = True;
email.ToAddress= 'test@test.com';
email.ThreadIdentifier = referenceId[0];
email.Subject = 'Test email';
email.HtmlBody = 'Test email body';
email.RelatedToId = testTTCase.Id;
insert email;
Test.startTest();
Custom_Object_Case__c result = TT_CaseEmailService.getExistingRecord(email);
Test.stopTest();
EmailMessage relatedId = [SELECT RelatedToId FROM EmailMessage WHERE ThreadIdentifier =: referenceId];
System.assertEquals(result.Id, testTTCase.Id);
}
I get the following error: