]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6925 cancelled tasks must not be the last task for a component
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Thu, 3 Dec 2015 14:19:06 +0000 (15:19 +0100)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Fri, 4 Dec 2015 10:01:08 +0000 (11:01 +0100)
server/sonar-server/src/test/java/org/sonar/server/computation/ws/ComponentActionTest.java
sonar-db/src/main/resources/org/sonar/db/ce/CeActivityMapper.xml

index dc3d62589c6e21a9622d38f9d1d934d540e6708d..15c2dffa707b1cb6b97703bc7fd314d41849edb9 100644 (file)
@@ -99,6 +99,27 @@ public class ComponentActionTest {
     assertThat(response.getCurrent().getId()).isEqualTo("T3");
   }
 
+  @Test
+  public void canceled_tasks_must_not_be_picked_as_current_analysis() {
+    userSession.addComponentUuidPermission(UserRole.USER, "PROJECT_1", "PROJECT_1");
+    insertActivity("T1", "PROJECT_1", CeActivityDto.Status.SUCCESS);
+    insertActivity("T2", "PROJECT_2", CeActivityDto.Status.FAILED);
+    insertActivity("T3", "PROJECT_1", CeActivityDto.Status.SUCCESS);
+    insertActivity("T4", "PROJECT_1", CeActivityDto.Status.CANCELED);
+    insertActivity("T5", "PROJECT_1", CeActivityDto.Status.CANCELED);
+
+    TestResponse wsResponse = tester.newRequest()
+        .setParam("componentId", "PROJECT_1")
+        .setMediaType(MediaTypes.PROTOBUF)
+        .execute();
+
+    WsCe.ProjectResponse response = Protobuf.read(wsResponse.getInputStream(), WsCe.ProjectResponse.PARSER);
+    assertThat(response.getQueueCount()).isEqualTo(0);
+    // T3 is the latest task executed on PROJECT_1 ignoring Canceled ones
+    assertThat(response.hasCurrent()).isTrue();
+    assertThat(response.getCurrent().getId()).isEqualTo("T3");
+  }
+
   private CeQueueDto insertQueue(String taskUuid, String componentUuid, CeQueueDto.Status status) {
     CeQueueDto queueDto = new CeQueueDto();
     queueDto.setTaskType(CeTaskTypes.REPORT);
index 25d79d14080e6e511e117c7653a8f0bcd8fe0948..155d1da39e26e04a5051ab313473e9dd66b29939 100644 (file)
@@ -38,6 +38,7 @@
     select uuid
     from ce_activity
     where is_last_key=#{isLastKey}
+      and status &lt;&gt; 'CANCELED'
     order by id desc
   </select>