Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @IsTest
- private class CaseEmailInBoundUtilitiesTest {
- public static testmethod void testExtractAddress() {
- system.debug('testExtractAddress ');
- String expected = 'b.g@g.com';
- String target = 'Bryan <' + expected + '>';
- // CaseEmailInBoundUtilities prutil = new CaseEmailInBoundUtilities();
- String results = CaseEmailInBoundUtilities.extractAddress(target);
- System.assertEquals(expected, results);
- target = 'Helen W ';
- expected = 'Helen.W@on.com';
- results = CaseEmailInBoundUtilities.extractAddress(target);
- }
- public static testmethod void testExtractRef() {
- Test.startTest();
- String emailSubject = 'Subject Case: 987 asdas asdasd ';
- CaseEmailInBoundUtilities prutil = new CaseEmailInBoundUtilities();
- String caseNumber = CaseEmailInBoundUtilities.extractRef(emailSubject);
- system.assertEquals('987', caseNumber);
- emailSubject = 'Subject cAse=987 asdas asdasd ';
- caseNumber = CaseEmailInBoundUtilities.extractRef(emailSubject);
- system.assertEquals('987', caseNumber);
- Case aCase = new Case();
- insert aCase;
- Case bCase = [Select Id, CaseNumber from Case where Id =: aCase.Id limit 1];
- String caseId = bCase.Id;
- String left = caseId.substring(0, 4);
- String right = caseId.substring(caseId.length() - 8, caseId.length());
- right = right.substring(0, 5);
- system.debug(Logginglevel.ERROR, 'testExtractRef case id: "' + caseId + '"');
- system.debug(Logginglevel.ERROR, 'testExtractRef case n: "' + bCase.CaseNumber + '"');
- emailSubject = 'For example in the ref [ ref:00D7JFzw.5007H3Rh8:ref ] ';
- emailSubject = 'For example in the ref [ ref:00D7JFzw.' + left + right + ':ref ] ';
- system.debug(Logginglevel.ERROR, 'testExtractRef email subject: "' + emailSubject + '"');
- caseNumber = CaseEmailInBoundUtilities.extractRef(emailSubject);
- //system.assertEquals(bCase.CaseNumber, caseNumber);
- Test.stopTest();
- //TRIM(" [ ref:" + LEFT( $Organization.Id, 4) + RIGHT($Organization.Id, 4) +"."+ LEFT( Id, 4)
- // + SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(Id, RIGHT( Id, 4), ""), LEFT( Id, 4), ""), "0", "")
- // + RIGHT( Id, 4) + ":ref ] ") LEFT( Id, 4)
- //SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(Id, R4, ""), L4, ""), "0", "") + R4
- }
- public static testmethod void testExtractMain() {
- CaseEmailInBoundUtilities prutil = new CaseEmailInBoundUtilities();
- String emailSubject = 'Some Subject Case';
- String fwSubject = 'FW: ' + emailSubject;
- String mainSubject;
- mainSubject = CaseEmailInBoundUtilities.extractMainSubject(fwSubject);
- system.debug(Logginglevel.ERROR, 'testExtractMain "' + mainSubject + '"');
- system.assertEquals(emailSubject, mainSubject);
- String reSubject = 'Re: ' + emailSubject;
- mainSubject = CaseEmailInBoundUtilities.extractMainSubject(reSubject);
- system.debug(Logginglevel.ERROR, 'testExtractMain "' + mainSubject + '"');
- system.assertEquals(emailSubject, mainSubject);
- }
- public static testMethod void testHandleError() {
- CaseEmailInBoundUtilities emailProcess = new CaseEmailInBoundUtilities();
- // create a new email
- Messaging.InboundEmail email;
- email = new Messaging.InboundEmail();
- email.subject = 'Test subject';
- email.plainTextBody = 'Test email';
- email.fromName = 'FirstName LastName';
- email.headers = new List<Messaging.InboundEmail.Header>();
- email.toAddresses = new String[] {
- 'someaddress@email.com'
- };
- // emailProcess.inboundEmail = email;
- emailProcess.handleError(null,'unit testing handle error');
- }
- public static testMethod void testProcessInboundEmailGoodWithAttachment() {
- Test.startTest();
- // create a new email
- Messaging.InboundEmail email = new Messaging.InboundEmail();
- email.subject = 'Subject asdas asdasd ';
- email.plainTextBody = 'Test email';
- email.fromName = 'FirstName LastName';
- email.headers = new List<Messaging.InboundEmail.Header>();
- email.toAddresses = new String[] {
- 'someaddress@email.com'
- };
- email.ccAddresses = new String[] {
- 'one@email.com',
- 'two@email.com'
- };
- String csv = 'this is just a test';
- // add an attachment
- Messaging.InboundEmail.BinaryAttachment attachment = new Messaging.InboundEmail.BinaryAttachment();
- attachment.body = blob.valueOf(csv);
- attachment.fileName = 'data.csv';
- attachment.mimeTypeSubType = 'text/plain';
- attachment.headers = new List<Messaging.InboundEmail.Header>();
- email.binaryAttachments = new Messaging.inboundEmail.BinaryAttachment[] {
- attachment
- };
- Messaging.InboundEmail.TextAttachment tattachment = new Messaging.InboundEmail.TextAttachment();
- tattachment.body = csv;
- tattachment.fileName = 'data.txt';
- tattachment.mimeTypeSubType = 'text/plain';
- tattachment.headers = new List<Messaging.InboundEmail.Header>();
- email.textAttachments = new Messaging.inboundEmail.TextAttachment[] {
- tattachment
- };
- // call the email service class and test it with the data in the testMethod
- CaseEmailInBoundUtilities emailProcess = new CaseEmailInBoundUtilities();
- Messaging.InboundEmailResult result = emailProcess.processInboundEmail(email);
- System.assert(result.success == true);
- Test.stopTest();
- }
- public static testMethod void testProcessInboundEmailWithMatchingSubject() {
- Test.startTest();
- CaseEmailInBoundUtilities emailProcess = new CaseEmailInBoundUtilities();
- Messaging.InboundEmail email;
- Messaging.InboundEmailResult result;
- Case[] matchingCases;
- EmailMessage[] matchingEmailMessages;
- Case theCase;
- String mainSubject = 'Subject asdas asdasd';
- // Test Part 1
- // create a new email
- email = new Messaging.InboundEmail();
- email.subject = mainSubject;
- email.plainTextBody = 'Test email';
- email.fromName = 'FirstName LastName';
- email.headers = new List<Messaging.InboundEmail.Header>();
- email.toAddresses = new String[] {
- 'someaddress@email.com'
- };
- // call the email service class and test it with the data in the testMethod
- result = emailProcess.processInboundEmail(email);
- System.assert(result.success == true);
- matchingCases = [Select Id, CaseNumber, Subject, Description from Case where Subject =: mainSubject];
- System.assertEquals(1, matchingCases.size());
- theCase = matchingCases[0];
- matchingEmailMessages = [Select Id from EmailMessage where ParentId =: theCase.Id];
- System.assertEquals(1, matchingEmailMessages.size());
- // TEST Part 2
- // create a new email
- email = new Messaging.InboundEmail();
- email.subject = mainSubject;
- email.plainTextBody = 'Test email';
- email.fromName = 'FirstName LastName';
- email.headers = new List<Messaging.InboundEmail.Header>();
- email.toAddresses = new String[] {
- 'someaddress@email.com'
- };
- // call the email service class and test it with the data in the testMethod
- result = emailProcess.processInboundEmail(email);
- System.assert(result.success == true);
- matchingCases = [Select Id, CaseNumber, Subject, Description from Case where Subject =: mainSubject];
- // still only one Case because the system will append the second email to the case Case
- System.assertEquals(1, matchingCases.size());
- System.assertEquals(theCase.Id, matchingCases[0].Id);
- // Should be two emails on the case
- matchingEmailMessages = [Select Id from EmailMessage where ParentId =: theCase.Id];
- System.assertEquals(2, matchingEmailMessages.size());
- // TEST Part 3
- // create a new email
- email = new Messaging.InboundEmail();
- email.subject = 'Different subject line but include Case: ' + theCase.CaseNumber;
- email.plainTextBody = 'Test email';
- email.fromName = 'FirstName LastName';
- email.headers = new List<Messaging.InboundEmail.Header>();
- email.toAddresses = new String[] {
- 'someaddress@email.com'
- };
- // call the email service class and test it with the data in the testMethod
- result = emailProcess.processInboundEmail(email);
- System.assert(result.success == true);
- matchingCases = [Select Id, CaseNumber, Subject, Description from Case where Subject =: email.subject];
- // Should be no cases created with that subject
- System.assertEquals(0, matchingCases.size());
- // Should be three emails on the case
- matchingEmailMessages = [Select Id from EmailMessage where ParentId =: theCase.Id];
- System.assertEquals(3, matchingEmailMessages.size());
- Test.stopTest();
- }
- public static testMethod void testProcessInboundEmailWithContacts() {
- Test.startTest();
- CaseEmailInBoundUtilities emailProcess = new CaseEmailInBoundUtilities();
- Messaging.InboundEmail email;
- Messaging.InboundEmailResult result;
- Case[] matchingCases;
- EmailMessage[] matchingEmailMessages;
- Case theCase;
- Contact theContact = new Contact();
- theContact.FirstName = 'FirstName';
- theContact.LastName = 'LastName';
- theContact.Email = 'someaddress@email.com';
- String mainSubject = 'Subject asdas asdasd';
- // Test Part 1
- // create a new email
- email = new Messaging.InboundEmail();
- email.subject = mainSubject;
- email.plainTextBody = 'Test email';
- email.fromName = 'FirstName LastName';
- email.headers = new List<Messaging.InboundEmail.Header>();
- email.toAddresses = new String[] {
- theContact.Email
- };
- // call the email service class and test it with the data in the testMethod
- result = emailProcess.processInboundEmail(email);
- System.assert(result.success == true);
- System.assertEquals(1, matchingCases.size());
- theCase = matchingCases[0];
- matchingEmailMessages = [Select Id from EmailMessage where ParentId =: theCase.Id];
- System.assertEquals(1, matchingEmailMessages.size());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement