-
Notifications
You must be signed in to change notification settings - Fork 721
/
TriggerNameContentTest.java
82 lines (71 loc) · 2.88 KB
/
TriggerNameContentTest.java
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package hudson.plugins.emailext.plugins.content;
import hudson.model.FreeStyleBuild;
import hudson.model.FreeStyleProject;
import hudson.plugins.emailext.EmailType;
import hudson.plugins.emailext.ExtendedEmailPublisher;
import hudson.plugins.emailext.plugins.EmailTrigger;
import hudson.plugins.emailext.plugins.trigger.PreBuildTrigger;
import hudson.plugins.emailext.plugins.trigger.SuccessTrigger;
import javax.mail.Message;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import org.junit.Rule;
import org.junit.Test;
import static org.junit.matchers.JUnitMatchers.hasItems;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.mock_javamail.Mailbox;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author acearl
*/
public class TriggerNameContentTest {
private ExtendedEmailPublisher publisher;
private FreeStyleProject project;
@Rule
public JenkinsRule j = new JenkinsRule() {
@Override
protected void before() throws Throwable {
super.before();
publisher = new ExtendedEmailPublisher();
publisher.defaultSubject = "%DEFAULT_SUBJECT";
publisher.defaultContent = "%DEFAULT_CONTENT";
publisher.attachmentsPattern = "";
publisher.recipientList = "%DEFAULT_RECIPIENTS";
publisher.presendScript = "";
project = createFreeStyleProject();
project.getPublishersList().add(publisher);
}
@Override
protected void after() {
super.after();
Mailbox.clearAll();
}
};
@Test
public void testTriggerName() throws Exception {
SuccessTrigger trigger = new SuccessTrigger(true, true, true, false, "$DEFAULT_RECIPIENTS",
"$DEFAULT_REPLYTO", "$DEFAULT_SUBJECT", "${TRIGGER_NAME}", "", 0, "project");
addEmailType(trigger);
publisher.getConfiguredTriggers().add(trigger);
FreeStyleBuild build = project.scheduleBuild2(0).get();
j.assertBuildStatusSuccess(build);
assertThat("Email should have been triggered, so we should see it in the logs.", build.getLog(100),
hasItems("Email was triggered for: " + SuccessTrigger.TRIGGER_NAME));
assertEquals(1, Mailbox.get("mickey@disney.com").size());
Message message = Mailbox.get("mickey@disney.com").get(0);
assertEquals("Success", message.getSubject());
}
private void addEmailType(EmailTrigger trigger) {
trigger.setEmail(new EmailType() {
{
setRecipientList("mickey@disney.com");
setSubject("${TRIGGER_NAME}");
}
});
}
}