Skip to content

Commit 74fd53a

Browse files
proskijakub-bochenski
authored andcommitted
StashBuildListenerTest: Add test for onCompleted() with matching cause
1 parent f04a51c commit 74fd53a

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/test/java/stashpullrequestbuilder/stashpullrequestbuilder/StashBuildListenerTest.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,22 @@
22

33
import static org.mockito.Mockito.anyString;
44
import static org.mockito.Mockito.eq;
5+
import static org.mockito.Mockito.mock;
56
import static org.mockito.Mockito.never;
7+
import static org.mockito.Mockito.spy;
8+
import static org.mockito.Mockito.startsWith;
69
import static org.mockito.Mockito.times;
710
import static org.mockito.Mockito.verify;
811
import static org.mockito.Mockito.when;
912

1013
import hudson.model.FreeStyleBuild;
14+
import hudson.model.FreeStyleProject;
15+
import hudson.model.Result;
1116
import hudson.model.TaskListener;
17+
import hudson.triggers.Trigger;
18+
import hudson.triggers.TriggerDescriptor;
19+
import java.util.HashMap;
20+
import java.util.Map;
1221
import org.junit.Before;
1322
import org.junit.Rule;
1423
import org.junit.Test;
@@ -73,6 +82,42 @@ public void onStarted_doesnt_set_if_there_is_no_StashCause() throws Exception {
7382
verify(build, never()).setDescription(anyString());
7483
}
7584

85+
@Test
86+
public void onCompleted_posts_finished_comment() throws Exception {
87+
final String duration = "2 seconds";
88+
final int buildNumber = 123;
89+
90+
StashBuildTrigger trigger = mock(StashBuildTrigger.class);
91+
StashPullRequestsBuilder builder = mock(StashPullRequestsBuilder.class);
92+
StashRepository repository = mock(StashRepository.class);
93+
FreeStyleProject project = spy(jenkinsRule.createFreeStyleProject());
94+
95+
Map<TriggerDescriptor, Trigger<?>> triggerMap = new HashMap<TriggerDescriptor, Trigger<?>>();
96+
triggerMap.put(StashBuildTrigger.descriptor, trigger);
97+
98+
when(build.getCause(eq(StashCause.class))).thenReturn(stashCause);
99+
when(build.getParent()).thenReturn(project);
100+
when(project.getTriggers()).thenReturn(triggerMap);
101+
when(trigger.getBuilder()).thenReturn(builder);
102+
when(builder.getRepository()).thenReturn(repository);
103+
when(build.getResult()).thenReturn(Result.SUCCESS);
104+
when(build.getDurationString()).thenReturn(duration);
105+
when(build.getNumber()).thenReturn(buildNumber);
106+
107+
stashBuildListener.onCompleted(build, taskListener);
108+
109+
verify(repository, times(1))
110+
.postFinishedComment(
111+
eq(stashCause.getPullRequestId()),
112+
eq(stashCause.getSourceCommitHash()),
113+
eq(stashCause.getDestinationCommitHash()),
114+
eq(Result.SUCCESS),
115+
startsWith("http://localhost"),
116+
eq(buildNumber),
117+
eq(""),
118+
eq(duration));
119+
}
120+
76121
@Test
77122
public void onCompleted_doesnt_check_build_result_if_there_is_no_StashCause() throws Exception {
78123
when(build.getCause(eq(StashCause.class))).thenReturn(null);

0 commit comments

Comments
 (0)