]> source.dussan.org Git - sonarqube.git/commitdiff
Fix some tests failing on none GMT+1 timezone 182/head
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 31 Mar 2015 16:30:41 +0000 (18:30 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 31 Mar 2015 16:32:16 +0000 (18:32 +0200)
server/sonar-server/src/main/java/org/sonar/server/db/migrations/v50/FeedFileSources.java
server/sonar-server/src/test/java/org/sonar/server/activity/index/ActivityResultSetIteratorTest.java
server/sonar-server/src/test/java/org/sonar/server/db/migrations/v43/ConvertIssueDebtToMinutesMigrationTest.java
server/sonar-server/src/test/java/org/sonar/server/db/migrations/v50/FeedFileSourcesTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionComponentsMediumTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java
server/sonar-server/src/test/java/org/sonar/server/startup/RenameIssueWidgetsTest.java
server/sonar-server/src/test/resources/org/sonar/server/issue/ws/SearchActionMediumTest/issue_with_action_plan.json

index fc6aa2d0f2ced66eaec444aab69827a58ce10d77..03ad53ab61ca6c2e3881a045c9e4fb13c744d119 100644 (file)
@@ -142,10 +142,10 @@ public class FeedFileSources extends BaseDataChange {
     "AND fs.file_uuid IS NULL";
 
   private static final class FileSourceBuilder implements MassUpdate.Handler {
-    private final Date now;
+    private final long now;
 
     public FileSourceBuilder(System2 system) {
-      now = new Date(system.now());
+      now = system.now();
     }
 
     @Override
@@ -199,8 +199,8 @@ public class FeedFileSources extends BaseDataChange {
 
       update.setString(1, projectUuid)
         .setString(2, fileUuid)
-        .setLong(3, now.getTime())
-        .setLong(4, (updatedAt == null ? now : updatedAt).getTime())
+        .setLong(3, now)
+        .setLong(4, updatedAt == null ? now : updatedAt.getTime())
         .setString(5, sourceData[0])
         .setString(6, sourceData[1])
         .setString(7, "");
index b2d8b6b064be19ec73b00ef7fed687f6e6aeffbb..b52b4fabc2eec3d2af2d5845a4b79a32f2274a5b 100644 (file)
@@ -80,7 +80,7 @@ public class ActivityResultSetIteratorTest {
     assertThat(it.hasNext()).isFalse();
     it.close();
 
-    assertThat(it.getMaxRowDate()).isEqualTo(1420066800000L);
+    assertThat(formatLongDate(it.getMaxRowDate())).startsWith("2015-01-01");
   }
 
   @Test
@@ -97,7 +97,7 @@ public class ActivityResultSetIteratorTest {
     assertThat(it.hasNext()).isFalse();
     it.close();
 
-    assertThat(it.getMaxRowDate()).isEqualTo(1420066800000L);
+    assertThat(formatLongDate(it.getMaxRowDate())).startsWith("2015-01-01");
   }
 
   @Test
@@ -110,4 +110,8 @@ public class ActivityResultSetIteratorTest {
 
     assertThat(it.getMaxRowDate()).isEqualTo(0L);
   }
+
+  private String formatLongDate(long dateInMs) {
+    return DateUtils.formatDateTime(DateUtils.longToDate(dateInMs));
+  }
 }
index b4c30d3a9d6abda38c0a4cfdef6b58b046a4b772..2230437771c662819cdc3af578f8393772f7b583 100644 (file)
@@ -32,6 +32,10 @@ import org.sonar.core.persistence.DbTester;
 import org.sonar.core.properties.PropertiesDao;
 import org.sonar.core.properties.PropertyDto;
 
+import java.util.List;
+import java.util.Map;
+
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
@@ -62,7 +66,17 @@ public class ConvertIssueDebtToMinutesMigrationTest {
 
     migration.execute();
 
-    db.assertDbUnit(getClass(), "migrate_issues_debt_result.xml", "issues");
+    db.assertDbUnit(getClass(), "migrate_issues_debt_result.xml", new String[] {"updated_at"}, "issues");
+
+    // Check only updated_at columns values, but we could also remove db unit file and check all fields
+    List<Map<String, Object>> results = db.select("select updated_at as \"updatedAt\" from issues");
+    assertThat(results).hasSize(5);
+    assertThat(results.get(0).get("updatedAt").toString()).startsWith("2014-02-19");
+    assertThat(results.get(1).get("updatedAt").toString()).startsWith("2014-02-19");
+    assertThat(results.get(2).get("updatedAt").toString()).startsWith("2014-02-19");
+    assertThat(results.get(3).get("updatedAt").toString()).startsWith("2014-02-19");
+    // Not updated because no debt
+    assertThat(results.get(4).get("updatedAt").toString()).startsWith("2012-01-05");
   }
 
 }
index 9607166b22d2a101ff6f614b8ab7fad455d1394c..1434e2c11cb413d02e8ebab24ab91d06185a24f5 100644 (file)
@@ -31,8 +31,10 @@ import org.sonar.core.persistence.DbTester;
 
 import java.sql.Connection;
 import java.sql.PreparedStatement;
-import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -41,6 +43,8 @@ public class FeedFileSourcesTest {
   @ClassRule
   public static DbTester db = new DbTester().schema(FeedFileSourcesTest.class, "schema.sql");
 
+  private static final long NOW = 1414770242000L;
+
   FeedFileSources migration;
 
   System2 system;
@@ -55,8 +59,7 @@ public class FeedFileSourcesTest {
     db.executeUpdateSql("truncate table file_sources");
 
     system = mock(System2.class);
-    Date now = DateUtils.parseDateTime("2014-11-17T16:27:00+0100");
-    when(system.now()).thenReturn(now.getTime());
+    when(system.now()).thenReturn(NOW);
     migration = new FeedFileSources(db.database(), system);
   }
 
@@ -81,7 +84,25 @@ public class FeedFileSourcesTest {
 
     migration.execute();
 
-    db.assertDbUnit(getClass(), "after.xml", "file_sources");
+    List<Map<String, Object>> results = db.select("select project_uuid as \"projectUuid\", file_uuid as \"fileUuid\", created_at as \"createdAt\", " +
+      "updated_at as \"updatedAt\", data as \"data\", data as \"data\", line_hashes as \"lineHashes\", data_hash as \"dataHash\"  from file_sources");
+    assertThat(results).hasSize(2);
+
+    assertThat(results.get(0).get("projectUuid")).isEqualTo("uuid-MyProject");
+    assertThat(results.get(0).get("fileUuid")).isEqualTo("uuid-Migrated.xoo");
+    assertThat(results.get(0).get("data")).isEqualTo("");
+    assertThat(results.get(0).get("lineHashes")).isEqualTo("");
+    assertThat(results.get(0).get("dataHash")).isEqualTo("");
+    assertThat(results.get(0).get("updatedAt")).isEqualTo(NOW);
+    assertThat(results.get(0).get("createdAt")).isEqualTo(1416238020000L);
+
+    assertThat(results.get(1).get("projectUuid")).isEqualTo("uuid-MyProject");
+    assertThat(results.get(1).get("fileUuid")).isEqualTo("uuid-MyFile.xoo");
+    assertThat(results.get(1).get("data")).isEqualTo(",,,,,,,,,,,,,,,class Foo {\r\n,,,,,,,,,,,,,,,  // Empty\r\n,,,,,,,,,,,,,,,}\r\n,,,,,,,,,,,,,,,\r\n");
+    assertThat(results.get(1).get("lineHashes")).isEqualTo("6a19ce786467960a3a9b0d26383a464a\naab2dbc5fdeaa80b050b1d049ede357c\ncbb184dd8e05c9709e5dcaedaa0495cf\n\n");
+    assertThat(results.get(1).get("dataHash")).isEqualTo("");
+    assertThat(formatLongDate((long) results.get(1).get("updatedAt")).toString()).startsWith("2014-10-31");
+    assertThat(results.get(1).get("createdAt")).isEqualTo(NOW);
   }
 
   @Test
@@ -212,7 +233,27 @@ public class FeedFileSourcesTest {
 
     migration.execute();
 
-    db.assertDbUnit(getClass(), "after-with-scm.xml", "file_sources");
+    List<Map<String, Object>> results = db.select("select project_uuid as \"projectUuid\", file_uuid as \"fileUuid\", created_at as \"createdAt\", " +
+      "updated_at as \"updatedAt\", data as \"data\", data as \"data\", line_hashes as \"lineHashes\", data_hash as \"dataHash\"  from file_sources");
+    assertThat(results).hasSize(2);
+
+    assertThat(results.get(0).get("projectUuid")).isEqualTo("uuid-MyProject");
+    assertThat(results.get(0).get("fileUuid")).isEqualTo("uuid-Migrated.xoo");
+    assertThat(results.get(0).get("data")).isEqualTo("");
+    assertThat(results.get(0).get("lineHashes")).isEqualTo("");
+    assertThat(results.get(0).get("dataHash")).isEqualTo("");
+    assertThat(results.get(0).get("updatedAt")).isEqualTo(NOW);
+    assertThat(results.get(0).get("createdAt")).isEqualTo(1416238020000L);
+
+    assertThat(results.get(1).get("projectUuid")).isEqualTo("uuid-MyProject");
+    assertThat(results.get(1).get("fileUuid")).isEqualTo("uuid-MyFile.xoo");
+    assertThat(results.get(1).get("data")).isEqualTo(
+      "aef12a,alice,2014-04-25T12:34:56+0100,1,4,2,2,5,3,3,6,4,,,1,class Foo {\r\nabe465,bob,2014-07-25T12:34:56+0100,,,,,,,,,,,,2,  " +
+        "// Empty\r\nafb789,carol,2014-03-23T12:34:56+0100,0,,,0,,,0,,,,,,}\r\nafb789,carol,2014-03-23T12:34:56+0100,,,,,,,,,,,,,\r\n");
+    assertThat(results.get(1).get("lineHashes")).isEqualTo("6a19ce786467960a3a9b0d26383a464a\naab2dbc5fdeaa80b050b1d049ede357c\ncbb184dd8e05c9709e5dcaedaa0495cf\n\n");
+    assertThat(results.get(1).get("dataHash")).isEqualTo("");
+    assertThat(formatLongDate((long) results.get(1).get("updatedAt")).toString()).startsWith("2014-10-31");
+    assertThat(results.get(1).get("createdAt")).isEqualTo(NOW);
   }
 
   @Test
@@ -250,6 +291,30 @@ public class FeedFileSourcesTest {
 
     migration.execute();
 
-    db.assertDbUnit(getClass(), "after-with-invalid-duplication.xml", "file_sources");
+    // db.assertDbUnit(getClass(), "after-with-invalid-duplication.xml", "file_sources");
+
+    List<Map<String, Object>> results = db.select("select project_uuid as \"projectUuid\", file_uuid as \"fileUuid\", created_at as \"createdAt\", " +
+      "updated_at as \"updatedAt\", data as \"data\", data as \"data\", line_hashes as \"lineHashes\", data_hash as \"dataHash\"  from file_sources");
+    assertThat(results).hasSize(2);
+
+    assertThat(results.get(0).get("projectUuid")).isEqualTo("uuid-MyProject");
+    assertThat(results.get(0).get("fileUuid")).isEqualTo("uuid-Migrated.xoo");
+    assertThat(results.get(0).get("data")).isEqualTo("");
+    assertThat(results.get(0).get("lineHashes")).isEqualTo("");
+    assertThat(results.get(0).get("dataHash")).isEqualTo("");
+    assertThat(results.get(0).get("updatedAt")).isEqualTo(NOW);
+    assertThat(results.get(0).get("createdAt")).isEqualTo(1416238020000L);
+
+    assertThat(results.get(1).get("projectUuid")).isEqualTo("uuid-MyProject");
+    assertThat(results.get(1).get("fileUuid")).isEqualTo("uuid-MyFile.xoo");
+    assertThat(results.get(1).get("data")).isEqualTo(",,,,,,,,,,,,,,,class Foo {\r\n,,,,,,,,,,,,,,,  // Empty\r\n,,,,,,,,,,,,,,,}\r\n,,,,,,,,,,,,,,,\r\n");
+    assertThat(results.get(1).get("lineHashes")).isEqualTo("6a19ce786467960a3a9b0d26383a464a\naab2dbc5fdeaa80b050b1d049ede357c\ncbb184dd8e05c9709e5dcaedaa0495cf\n\n");
+    assertThat(results.get(1).get("dataHash")).isEqualTo("");
+    assertThat(formatLongDate((long) results.get(1).get("updatedAt")).toString()).startsWith("2014-10-31");
+    assertThat(results.get(1).get("createdAt")).isEqualTo(NOW);
+  }
+
+  private String formatLongDate(long dateInMs) {
+    return DateUtils.formatDateTime(DateUtils.longToDate(dateInMs));
   }
 }
index 6e7ee3749d357fa4af57a60aaaf1ddf8eb534968..2dca1fa5b79fee55b9012821631b45c6b80d7bdf 100644 (file)
@@ -87,8 +87,8 @@ public class SearchActionComponentsMediumTest {
       .setKee("82fd47d4-b650-4037-80bc-7b112bd4eac2")
       .setStatus("OPEN").setResolution("OPEN")
       .setSeverity("MAJOR")
-      .setIssueCreationDate(DateUtils.parseDate("2014-09-04"))
-      .setIssueUpdateDate(DateUtils.parseDate("2017-12-04"));
+      .setIssueCreationDate(DateUtils.parseDateTime("2014-09-04T00:00:00+0100"))
+      .setIssueUpdateDate(DateUtils.parseDateTime("2017-12-04T00:00:00+0100"));
     db.issueDao().insert(session, issue);
 
     ComponentDto project2 = insertComponent(ComponentTesting.newProjectDto("DBCA").setKey("MyProject2"));
@@ -98,8 +98,8 @@ public class SearchActionComponentsMediumTest {
       .setKee("92fd47d4-b650-4037-80bc-7b112bd4eac2")
       .setStatus("OPEN").setResolution("OPEN")
       .setSeverity("MAJOR")
-      .setIssueCreationDate(DateUtils.parseDate("2014-09-04"))
-      .setIssueUpdateDate(DateUtils.parseDate("2017-12-04"));
+      .setIssueCreationDate(DateUtils.parseDateTime("2014-09-04T00:00:00+0100"))
+      .setIssueUpdateDate(DateUtils.parseDateTime("2017-12-04T00:00:00+0100"));
     db.issueDao().insert(session, issue2);
     session.commit();
     tester.get(IssueIndexer.class).indexAll();
@@ -488,7 +488,6 @@ public class SearchActionComponentsMediumTest {
     IssueDto issue1 = IssueTesting.newDto(newRule, file, project).setAuthorLogin("vader").setKee("2bd4eac2-b650-4037-80bc-7b112bd4eac2");
     IssueDto issue2 = IssueTesting.newDto(newRule, file, project).setAuthorLogin("anakin@skywalker.name").setKee("82fd47d4-b650-4037-80bc-7b1182fd47d4");
 
-
     db.issueDao().insert(session, issue1, issue2);
     session.commit();
     tester.get(IssueIndexer.class).indexAll();
index 174005a2ccff006bafeb3a9645a66ce9af9f6917..0db8498e6828ccce81cf202d59dc16ff21a542e2 100644 (file)
@@ -117,14 +117,13 @@ public class SearchActionMediumTest {
       .setAssignee("simon")
       .setReporter("fabrice")
       .setActionPlanKey("AP-ABCD")
-      .setIssueCreationDate(DateUtils.parseDate("2014-09-04"))
-      .setIssueUpdateDate(DateUtils.parseDate("2017-12-04"));
+      .setIssueCreationDate(DateUtils.parseDateTime("2014-09-04T00:00:00+0100"))
+      .setIssueUpdateDate(DateUtils.parseDateTime("2017-12-04T00:00:00+0100"));
     db.issueDao().insert(session, issue);
     session.commit();
     tester.get(IssueIndexer.class).indexAll();
 
     WsTester.Result result = wsTester.newGetRequest(IssuesWs.API_ENDPOINT, SearchAction.SEARCH_ACTION).execute();
-    // TODO date assertion is complex to test, and components id are not predictable, that's why strict boolean is set to false
     result.assertJson(this.getClass(), "issue.json");
   }
 
@@ -209,9 +208,9 @@ public class SearchActionMediumTest {
       .setStatus("OPEN")
       .setProjectId(project.getId())
       .setUserLogin("simon")
-      .setDeadLine(DateUtils.parseDateTime("2014-01-24T19:10:03+0100"))
-      .setCreatedAt(DateUtils.parseDateTime("2014-01-22T19:10:03+0100"))
-      .setUpdatedAt(DateUtils.parseDateTime("2014-01-23T19:10:03+0100")));
+      .setDeadLine(DateUtils.parseDateTime("2014-01-24T19:10:03+0000"))
+      .setCreatedAt(DateUtils.parseDateTime("2014-01-22T19:10:03+0000"))
+      .setUpdatedAt(DateUtils.parseDateTime("2014-01-23T19:10:03+0000")));
 
     IssueDto issue = IssueTesting.newDto(newRule(), file, project)
       .setKee("82fd47d4-b650-4037-80bc-7b112bd4eac2")
@@ -285,8 +284,8 @@ public class SearchActionMediumTest {
       .setComponent(removedFile)
       .setStatus("OPEN").setResolution("OPEN")
       .setSeverity("MAJOR")
-      .setIssueCreationDate(DateUtils.parseDate("2014-09-04"))
-      .setIssueUpdateDate(DateUtils.parseDate("2017-12-04"));
+      .setIssueCreationDate(DateUtils.parseDateTime("2014-09-04T00:00:00+0100"))
+      .setIssueUpdateDate(DateUtils.parseDateTime("2017-12-04T00:00:00+0100"));
     db.issueDao().insert(session, issue);
     session.commit();
     tester.get(IssueIndexer.class).indexAll();
@@ -573,9 +572,15 @@ public class SearchActionMediumTest {
     ComponentDto project = insertComponent(ComponentTesting.newProjectDto("ABCD").setKey("MyProject"));
     setDefaultProjectPermission(project);
     ComponentDto file = insertComponent(ComponentTesting.newFileDto(project, "BCDE").setKey("MyComponent"));
-    db.issueDao().insert(session, IssueTesting.newDto(rule, file, project).setKee("82fd47d4-b650-4037-80bc-7b112bd4eac1").setIssueUpdateDate(DateUtils.parseDate("2014-11-02")));
-    db.issueDao().insert(session, IssueTesting.newDto(rule, file, project).setKee("82fd47d4-b650-4037-80bc-7b112bd4eac2").setIssueUpdateDate(DateUtils.parseDate("2014-11-01")));
-    db.issueDao().insert(session, IssueTesting.newDto(rule, file, project).setKee("82fd47d4-b650-4037-80bc-7b112bd4eac3").setIssueUpdateDate(DateUtils.parseDate("2014-11-03")));
+    db.issueDao().insert(session, IssueTesting.newDto(rule, file, project)
+      .setKee("82fd47d4-b650-4037-80bc-7b112bd4eac1")
+      .setIssueUpdateDate(DateUtils.parseDateTime("2014-11-02T00:00:00+0100")));
+    db.issueDao().insert(session, IssueTesting.newDto(rule, file, project)
+      .setKee("82fd47d4-b650-4037-80bc-7b112bd4eac2")
+      .setIssueUpdateDate(DateUtils.parseDateTime("2014-11-01T00:00:00+0100")));
+    db.issueDao().insert(session, IssueTesting.newDto(rule, file, project)
+      .setKee("82fd47d4-b650-4037-80bc-7b112bd4eac3")
+      .setIssueUpdateDate(DateUtils.parseDateTime("2014-11-03T00:00:00+0100")));
     session.commit();
     tester.get(IssueIndexer.class).indexAll();
 
index 5469413de01dcf756493819573cc543afe8be576..da1a0aedcf62c4cfbbda344a9fb60311ead725bc 100644 (file)
@@ -34,7 +34,10 @@ import org.sonar.server.db.DbClient;
 import org.sonar.test.DbTests;
 
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -50,7 +53,15 @@ public class RenameIssueWidgetsTest {
 
     doStart();
 
-    dbTester.assertDbUnit(this.getClass(), "after.xml", "widgets", "widget_properties", "loaded_templates");
+    dbTester.assertDbUnit(this.getClass(), "after.xml", new String[] {"updated_at"}, "widgets", "widget_properties", "loaded_templates");
+
+    List<Map<String, Object>> results = dbTester.select("select updated_at as \"updatedAt\" from widgets");
+    assertThat(results).hasSize(6);
+    // First widget is not updated
+    assertThat(results.get(0).get("updatedAt")).isNull();
+    for (int i = 1; i < results.size(); i++) {
+      assertThat(results.get(i).get("updatedAt").toString()).startsWith("2003-03-23");
+    }
   }
 
   @Test
index 878af790fef4905e4f06355c0b93c7089a144b9a..67836dba67fc3886443a569836f59fc2392e4819 100644 (file)
       "status": "OPEN",
       "project": "MyProject",
       "userLogin": "simon",
-      "deadLine": "2014-01-24T19:10:03+0100",
-      "fDeadLine": "Jan 24, 2014 7:10 PM",
-      "createdAt": "2014-01-22T19:10:03+0100",
-      "fCreatedAt": "Jan 22, 2014 7:10 PM",
-      "updatedAt": "2014-01-23T19:10:03+0100",
-      "fUpdatedAt": "Jan 23, 2014 7:10 PM"
+      "deadLine": "2014-01-24T19:10:03+0000",
+      "createdAt": "2014-01-22T19:10:03+0000",
+      "updatedAt": "2014-01-23T19:10:03+0000"
     }
   ]
 }