-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsfApexTestClass-EmailTestControllerTest
55 lines (47 loc) · 2.05 KB
/
sfApexTestClass-EmailTestControllerTest
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
@isTest
public class EmailTestControllerTest {
@testSetup
static void setupTestData() {
// Create a test Contact
Contact testContact = new Contact(FirstName = 'Test', LastName = 'Contact', Email = '[email protected]');
insert testContact;
// Create a test Account and Opportunity
Account testAccount = new Account(Name = 'Test Account');
insert testAccount;
Opportunity testOpportunity = new Opportunity(Name = 'Test Opportunity', StageName = 'Prospecting', CloseDate = Date.today(), AccountId = testAccount.Id);
insert testOpportunity;
// Create a simple email template
User user = [SELECT Id FROM User WHERE IsActive = true LIMIT 1];
System.runAs(user) {
EmailTemplate testTemplate = new EmailTemplate(
Name = 'Simple Test Template',
DeveloperName = 'Simple_Test_Template',
Subject = 'Test Email',
HtmlValue = '<html><body>Dear {!Contact.FirstName},</body></html>',
FolderId = UserInfo.getUserId(),
TemplateType = 'text',
IsActive = true
);
insert testTemplate;
}
}
@isTest
static void testGetEmailTemplates() {
Test.startTest();
List<OptionWrapper> templates = EmailTestController.getEmailTemplates();
Test.stopTest();
System.assertNotEquals(0, templates.size(), 'Email Templates should be returned');
}
@isTest
static void testSendTestEmailToContact() {
EmailTemplate template = [SELECT Id FROM EmailTemplate WHERE DeveloperName = 'Simple_Test_Template' LIMIT 1];
Contact contact = [SELECT Id, Email FROM Contact WHERE Email = '[email protected]' LIMIT 1];
Test.startTest();
try {
EmailTestController.sendTestEmail(template.Id, contact.Id, contact.Email);
} catch (Exception e) {
System.assert(false, 'No exceptions should be thrown when sending email to Contact.');
}
Test.stopTest();
}
}