]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-7191 api/ce/activity max submitted date is inclusive
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Fri, 19 Feb 2016 10:05:59 +0000 (11:05 +0100)
committerTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Fri, 19 Feb 2016 10:27:34 +0000 (11:27 +0100)
server/sonar-server/src/main/java/org/sonar/server/computation/ws/ActivityAction.java
server/sonar-server/src/test/java/org/sonar/server/computation/ws/ActivityActionTest.java
sonar-plugin-api/src/main/java/org/sonar/api/utils/DateUtils.java

index 19c1aee5b18487730c2f71e3a1768af6c44a4f28..a318964313dff0a50b0cc61fa73786ffcebe5c58 100644 (file)
@@ -142,10 +142,10 @@ public class ActivityAction implements CeWsAction {
       .setExampleValue(CeTaskTypes.REPORT)
       .setPossibleValues(taskTypes);
     action.createParam(PARAM_MIN_SUBMITTED_AT)
-      .setDescription("Minimum date of task submission")
+      .setDescription("Minimum date of task submission (inclusive)")
       .setExampleValue(DateUtils.formatDateTime(new Date()));
     action.createParam(PARAM_MAX_EXECUTED_AT)
-      .setDescription("Maximum date of end of task processing")
+      .setDescription("Maximum date of end of task processing (inclusive)")
       .setExampleValue(DateUtils.formatDateTime(new Date()));
     action.addPagingParams(100, MAX_PAGE_SIZE);
   }
@@ -274,10 +274,10 @@ public class ActivityAction implements CeWsAction {
     Date date = parseDateTimeQuietly(dateAsString);
     if (date == null) {
       date = parseDateQuietly(dateAsString);
+      checkRequest(date != null, "Date '%s' cannot be parsed as either a date or date+time", dateAsString);
+      date = DateUtils.addDays(date, 1);
     }
 
-    checkRequest(date != null, "Date '%s' cannot be parsed as either a date or date+time", dateAsString);
-
     return date.getTime();
   }
 
index f51761372e526a03d92696d654aa9baaf0e98979..049725d1836bd3738125755bc7c55c1c49b409ec 100644 (file)
@@ -25,6 +25,7 @@ import com.google.common.base.Throwables;
 import java.io.File;
 import java.io.IOException;
 import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 import org.junit.Before;
 import org.junit.Rule;
@@ -58,6 +59,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
+import static org.sonar.api.utils.DateUtils.formatDate;
 import static org.sonar.api.utils.DateUtils.formatDateTime;
 import static org.sonar.db.component.ComponentTesting.newProjectDto;
 import static org.sonarqube.ws.client.ce.CeWsParameters.PARAM_COMPONENT_QUERY;
@@ -124,7 +126,7 @@ public class ActivityActionTest {
   }
 
   @Test
-  public void filter_by_max_executed_at() {
+  public void filter_by_max_executed_at_exclude() {
     userSession.setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
     insertActivity("T1", "PROJECT_1", CeActivityDto.Status.SUCCESS);
     insertActivity("T2", "PROJECT_2", CeActivityDto.Status.FAILED);
@@ -137,6 +139,19 @@ public class ActivityActionTest {
     assertThat(activityResponse.getTasksCount()).isEqualTo(0);
   }
 
+  @Test
+  public void filter_by_max_executed_at_include_day_filled() {
+    userSession.setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+    insertActivity("T1", "PROJECT_1", CeActivityDto.Status.SUCCESS);
+    String today = formatDate(new Date(EXECUTED_AT));
+    System.out.println(EXECUTED_AT + " - " + today);
+
+    ActivityResponse activityResponse = call(ws.newRequest()
+      .setParam(CeWsParameters.PARAM_MAX_EXECUTED_AT, today));
+
+    assertThat(activityResponse.getTasksCount()).isEqualTo(1);
+  }
+
   @Test
   public void filter_on_current_activities() {
     userSession.setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
index 277ce1add126567fb640da038405d66a60d7be2f..2f31b3f506b57a4ac5a5b1262712f1c403b184e3 100644 (file)
@@ -142,6 +142,14 @@ public final class DateUtils {
     return datetime;
   }
 
+  /**
+   * Adds a number of days to a date returning a new object.
+   * The original date object is unchanged.
+   *
+   * @param date  the date, not null
+   * @param numberOfDays  the amount to add, may be negative
+   * @return the new date object with the amount added
+   */
   public static Date addDays(Date date, int numberOfDays) {
     return org.apache.commons.lang.time.DateUtils.addDays(date, numberOfDays);
   }