/** * Tests that event is properly removed if only one project is triggered * which is cancelled while in the queue. * * @throws Exception if something goes wrong */ @Test public void testCancelledQueueItemIsOnlyTriggeredProject() throws Exception { FreeStyleProject project = jenkinsRule.createFreeStyleProject(); PatchsetCreated event = Setup.createPatchsetCreated(); final GerritCause gerritCause = new GerritCause(event, false); ToGerritRunListener runListener = ToGerritRunListener.getInstance(); runListener.onTriggered(project, event); project.scheduleBuild2(QUIET_PERIOD, gerritCause); Item item = waitForBlockedItem(project, TIMEOUT_SECONDS); Queue queue = jenkinsRule.getInstance().getQueue(); queue.doCancelItem(item.getId()); assertThat(queue.isEmpty(), equalTo(true)); assertThat(project.getBuilds().size(), equalTo(0)); assertThat(runListener.isBuilding(event), equalTo(false)); }
/** * Tests that event is properly removed if only two different projects are triggered * and one of them is cancelled while in the queue. * * @throws Exception if something goes wrong */ @Test public void testCancelledOneQueueItemOfTwo() throws Exception { FreeStyleProject project = jenkinsRule.createFreeStyleProject(); FreeStyleProject project2 = jenkinsRule.createFreeStyleProject(); PatchsetCreated event = Setup.createPatchsetCreated(); final GerritCause gerritCause = new GerritCause(event, false); ToGerritRunListener runListener = ToGerritRunListener.getInstance(); runListener.onTriggered(project, event); runListener.onTriggered(project2, event); project.scheduleBuild2(QUIET_PERIOD, gerritCause); QueueTaskFuture<FreeStyleBuild> future2 = project2.scheduleBuild2(QUIET_PERIOD, gerritCause); Item item = waitForBlockedItem(project, TIMEOUT_SECONDS); Queue queue = jenkinsRule.getInstance().getQueue(); queue.doCancelItem(item.getId()); FreeStyleBuild build = future2.get(); assertThat(queue.isEmpty(), equalTo(true)); assertThat(project.getBuilds().size(), equalTo(0)); assertThat(project2.getBuilds().size(), equalTo(1)); assertThat(runListener.isBuilding(event), equalTo(false)); }