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;
@ClassRule
public static DbTester db = new DbTester().schema(FeedFileSourcesTest.class, "schema.sql");
+ private static final long NOW = 1414770242000L;
+
FeedFileSources migration;
System2 system;
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);
}
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
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
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));
}
}
.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");
}
.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")
.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();
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();