package hudson.plugins.jira.selector.perforce; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.jenkinsci.plugins.p4.changes.P4ChangeEntry; import org.jenkinsci.plugins.p4.changes.P4ChangeSet; import org.junit.Assert; import org.junit.Test; import com.google.common.collect.Sets; import com.perforce.p4java.impl.generic.core.Fix; import hudson.model.BuildListener; import hudson.model.FreeStyleBuild; import hudson.plugins.jira.JiraSite; import hudson.plugins.jira.selector.perforce.JobIssueSelector; import hudson.plugins.jira.selector.perforce.P4JobIssueSelector; import hudson.scm.ChangeLogSet; import hudson.scm.ChangeLogSet.Entry; public class P4JobIssueSelectorTest extends JobIssueSelectorTest { @Test public void testFindsTwoP4Jobs() { final String jobIdIW1231 = "IW-1231"; final String jobIdEC3453 = "EC-3453"; FreeStyleBuild build = mock(FreeStyleBuild.class); BuildListener listener = mock(BuildListener.class); ChangeLogSet changeLogSet = mock(ChangeLogSet.class); P4ChangeSet perforceChangeLogSet = mock(P4ChangeSet.class); JiraSite jiraSite = mock(JiraSite.class); Fix fixIW1231 = mock(Fix.class); Fix fixEC3453 = mock(Fix.class); when(fixIW1231.getJobId()).thenReturn(jobIdIW1231); when(fixEC3453.getJobId()).thenReturn(jobIdEC3453); when(listener.getLogger()).thenReturn(System.out); when(build.getChangeSet()).thenReturn(changeLogSet); ArrayList<P4ChangeEntry> entries = new ArrayList<P4ChangeEntry>(); P4ChangeEntry entry1 = new P4ChangeEntry(perforceChangeLogSet); entry1.getJobs().add(fixIW1231); entries.add(entry1); P4ChangeEntry entry2 = new P4ChangeEntry(perforceChangeLogSet); entry2.getJobs().add(fixEC3453); entries.add(entry2); when(changeLogSet.iterator()).thenReturn(entries.iterator()); List<ChangeLogSet<? extends ChangeLogSet.Entry>> changeSets = new ArrayList<ChangeLogSet<? extends Entry>>(); changeSets.add(changeLogSet); when(build.getChangeSets()).thenReturn(changeSets); Set<String> expected = Sets.newHashSet(jobIdEC3453, jobIdIW1231); P4JobIssueSelector selector = new P4JobIssueSelector(); Set<String> result = selector.findIssueIds(build, jiraSite, listener); Assert.assertEquals(expected.size(), result.size()); Assert.assertEquals(expected, result); } @Override protected JobIssueSelector createJobIssueSelector() { return new P4JobIssueSelector(); } }