]> source.dussan.org Git - sonarqube.git/commitdiff
Rewrite dbunit test using dbtester
authorJanos Gyerik <janos.gyerik@sonarsource.com>
Wed, 13 Jun 2018 06:15:23 +0000 (08:15 +0200)
committersonartech <sonartech@sonarsource.com>
Wed, 4 Jul 2018 07:31:03 +0000 (09:31 +0200)
16 files changed:
server/sonar-db-dao/src/test/java/org/sonar/db/purge/PurgeDaoTest.java
server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/close_issues_clean_index_and_files_sources_of_specified_components-result.xml [deleted file]
server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/close_issues_clean_index_and_files_sources_of_specified_components.xml [deleted file]
server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_all_closed_issues-result.xml [deleted file]
server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_all_closed_issues.xml [deleted file]
server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_old_closed_issues-result.xml [deleted file]
server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_old_closed_issues.xml [deleted file]
server/sonar-server/src/test/java/org/sonar/server/issue/IssueStorageTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/ServerIssueStorageTest.java
server/sonar-server/src/test/resources/org/sonar/server/issue/IssueStorageTest/should_insert_new_issues-result.xml [deleted file]
server/sonar-server/src/test/resources/org/sonar/server/issue/IssueStorageTest/should_update_issues-result.xml [deleted file]
server/sonar-server/src/test/resources/org/sonar/server/issue/IssueStorageTest/should_update_issues.xml [deleted file]
server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_insert_new_issues-result.xml [deleted file]
server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_insert_new_issues.xml [deleted file]
server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_update_issues-result.xml [deleted file]
server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_update_issues.xml [deleted file]

index 75530fc48711103b66c7dc203f772c969de72e8f..4f7ec70247d15e48793d57c7701102a1aa05033a 100644 (file)
@@ -53,11 +53,14 @@ import org.sonar.db.component.BranchType;
 import org.sonar.db.component.ComponentDbTester;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.ComponentTesting;
+import org.sonar.db.component.SnapshotDto;
+import org.sonar.db.issue.IssueDto;
 import org.sonar.db.measure.MeasureDto;
 import org.sonar.db.measure.custom.CustomMeasureDto;
 import org.sonar.db.metric.MetricDto;
 import org.sonar.db.property.PropertyDto;
 import org.sonar.db.rule.RuleDefinitionDto;
+import org.sonar.db.source.FileSourceDto;
 
 import static java.util.Arrays.asList;
 import static java.util.Collections.emptyList;
@@ -176,13 +179,60 @@ public class PurgeDaoTest {
 
   @Test
   public void close_issues_clean_index_and_file_sources_of_disabled_components_specified_by_uuid_in_configuration() {
-    dbTester.prepareDbUnit(getClass(), "close_issues_clean_index_and_files_sources_of_specified_components.xml");
-    when(system2.now()).thenReturn(1450000000000L);
-    underTest.purge(dbSession, newConfigurationWith30Days(system2, THE_PROJECT_UUID, "P1", "EFGH", "GHIJ"), PurgeListener.EMPTY, new PurgeProfiler());
+    // components and issues, updated 31 days ago
+    when(system2.now()).thenReturn(DateUtils.addDays(new Date(), -31).getTime());
+    RuleDefinitionDto rule = dbTester.rules().insert();
+    ComponentDto project = dbTester.components().insertMainBranch(p -> p.setEnabled(false));
+    dbTester.components().insertSnapshot(project);
+    dbTester.components().insertSnapshot(project);
+    dbTester.components().insertSnapshot(project, s -> s.setLast(false));
+
+    ComponentDto module = dbTester.components().insertComponent(newModuleDto(project).setEnabled(false));
+    ComponentDto dir = dbTester.components().insertComponent(newDirectory(module, "sub").setEnabled(false));
+    ComponentDto srcFile = dbTester.components().insertComponent(newFileDto(module, dir).setEnabled(false));
+    ComponentDto testFile = dbTester.components().insertComponent(newFileDto(module, dir).setEnabled(false));
+    ComponentDto nonSelectedFile = dbTester.components().insertComponent(newFileDto(module, dir).setEnabled(false));
+    IssueDto openOnFile = dbTester.issues().insert(rule, project, srcFile, issue -> issue.setStatus("OPEN"));
+    IssueDto confirmOnFile = dbTester.issues().insert(rule, project, srcFile, issue -> issue.setStatus("CONFIRM"));
+    IssueDto openOnDir = dbTester.issues().insert(rule, project, dir, issue -> issue.setStatus("OPEN"));
+    IssueDto confirmOnDir = dbTester.issues().insert(rule, project, dir, issue -> issue.setStatus("CONFIRM"));
+    IssueDto openOnNonSelected = dbTester.issues().insert(rule, project, nonSelectedFile, issue -> issue.setStatus("OPEN"));
+    IssueDto confirmOnNonSelected = dbTester.issues().insert(rule, project, nonSelectedFile, issue -> issue.setStatus("CONFIRM"));
+
+    assertThat(dbTester.countSql("select count(*) from snapshots where purge_status = 1")).isEqualTo(0);
+
+    assertThat(dbTester.countSql("select count(*) from issues where status = 'CLOSED'")).isEqualTo(0);
+    assertThat(dbTester.countSql("select count(*) from issues where resolution = 'REMOVED'")).isEqualTo(0);
+
+    dbTester.fileSources().insertFileSource(srcFile);
+    dbTester.fileSources().insertFileSource(testFile, f -> f.setDataType("TEST"));
+    FileSourceDto nonSelectedFileSource = dbTester.fileSources().insertFileSource(nonSelectedFile);
+    assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(3);
+
+    // back to present
+    when(system2.now()).thenReturn(new Date().getTime());
+    underTest.purge(dbSession, newConfigurationWith30Days(system2, project.uuid(), module.uuid(), dir.uuid(), srcFile.uuid(), testFile.uuid()), PurgeListener.EMPTY, new PurgeProfiler());
     dbSession.commit();
-    dbTester.assertDbUnit(getClass(), "close_issues_clean_index_and_files_sources_of_specified_components-result.xml",
-      new String[] {"issue_close_date", "issue_update_date"},
-      "projects", "snapshots", "issues");
+
+    // set purge_status=1 for non-last snapshot
+    assertThat(dbTester.countSql("select count(*) from snapshots where purge_status = 1")).isEqualTo(1);
+
+    // close open issues of selected
+    assertThat(dbTester.countSql("select count(*) from issues where status = 'CLOSED'")).isEqualTo(4);
+    for (IssueDto issue : Arrays.asList(openOnFile, confirmOnFile, openOnDir, confirmOnDir)) {
+      assertThat(dbTester.getDbClient().issueDao().selectByKey(dbSession, issue.getKey()).get())
+        .extracting("status", "resolution")
+        .containsExactlyInAnyOrder("CLOSED", "REMOVED");
+    }
+    for (IssueDto issue : Arrays.asList(openOnNonSelected, confirmOnNonSelected)) {
+      assertThat(dbTester.getDbClient().issueDao().selectByKey(dbSession, issue.getKey()).get())
+        .extracting("status", "resolution")
+        .containsExactlyInAnyOrder(issue.getStatus(), null);
+    }
+
+    // delete file sources of selected
+    assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
+    assertThat(dbTester.getDbClient().fileSourceDao().selectSourceByFileUuid(dbSession, nonSelectedFileSource.getFileUuid())).isNotNull();
   }
 
   @Test
@@ -520,31 +570,34 @@ public class PurgeDaoTest {
 
   @Test
   public void should_delete_old_closed_issues() {
-    PurgeListener purgeListener = mock(PurgeListener.class);
-    dbTester.prepareDbUnit(getClass(), "should_delete_old_closed_issues.xml");
-
-    underTest.purge(dbSession, newConfigurationWith30Days(), purgeListener, new PurgeProfiler());
-    dbSession.commit();
+    RuleDefinitionDto rule = dbTester.rules().insert();
+    ComponentDto project = dbTester.components().insertMainBranch();
 
-    dbTester.assertDbUnit(getClass(), "should_delete_old_closed_issues-result.xml", "issues", "issue_changes");
+    ComponentDto module = dbTester.components().insertComponent(newModuleDto(project));
+    ComponentDto file = dbTester.components().insertComponent(newFileDto(module));
 
-    Class<ArrayList<String>> listClass = (Class<ArrayList<String>>) (Class) ArrayList.class;
-    ArgumentCaptor<ArrayList<String>> issueKeys = ArgumentCaptor.forClass(listClass);
-    ArgumentCaptor<String> projectUuid = ArgumentCaptor.forClass(String.class);
+    IssueDto oldClosed = dbTester.issues().insert(rule, project, file, issue -> {
+      issue.setStatus("CLOSED");
+      issue.setIssueCloseDate(DateUtils.addDays(new Date(), -31));
+    });
 
-    verify(purgeListener).onIssuesRemoval(projectUuid.capture(), issueKeys.capture());
-    assertThat(projectUuid.getValue()).isEqualTo(THE_PROJECT_UUID);
-    assertThat(issueKeys.getValue()).containsOnly("ISSUE-1", "ISSUE-2");
-  }
+    IssueDto notOldEnoughClosed = dbTester.issues().insert(rule, project, file, issue -> {
+      issue.setStatus("CLOSED");
+      issue.setIssueCloseDate(new Date());
+    });
+    IssueDto notClosed = dbTester.issues().insert(rule, project, file);
 
-  @Test
-  public void should_delete_all_closed_issues() {
-    dbTester.prepareDbUnit(getClass(), "should_delete_all_closed_issues.xml");
-    PurgeConfiguration conf = new PurgeConfiguration(new IdUuidPair(THE_PROJECT_ID, "1"), emptyList(),
-      0, Optional.empty(), System2.INSTANCE, Collections.emptyList());
-    underTest.purge(dbSession, conf, PurgeListener.EMPTY, new PurgeProfiler());
+    when(system2.now()).thenReturn(new Date().getTime());
+    underTest.purge(dbSession, newConfigurationWith30Days(system2, project.uuid()), PurgeListener.EMPTY, new PurgeProfiler());
     dbSession.commit();
-    dbTester.assertDbUnit(getClass(), "should_delete_all_closed_issues-result.xml", "issues", "issue_changes");
+
+    // old closed got deleted
+    assertThat(dbTester.getDbClient().issueDao().selectByKey(dbSession, oldClosed.getKey())).isEmpty();
+
+    // others remain
+    assertThat(dbTester.countRowsOfTable("issues")).isEqualTo(2);
+    assertThat(dbTester.getDbClient().issueDao().selectByKey(dbSession, notOldEnoughClosed.getKey())).isNotEmpty();
+    assertThat(dbTester.getDbClient().issueDao().selectByKey(dbSession, notClosed.getKey())).isNotEmpty();
   }
 
   @Test
diff --git a/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/close_issues_clean_index_and_files_sources_of_specified_components-result.xml b/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/close_issues_clean_index_and_files_sources_of_specified_components-result.xml
deleted file mode 100644 (file)
index 287f41e..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-<!--
-
-What has been changed :
-* enabled=false on projects
-* purge_status=1 on snapshots
-* resolve not already resolved issues on all components
-
--->
-<dataset>
-
-  <!-- the project -->
-  <projects organization_uuid="org1"
-            uuid="P1"
-            uuid_path="NOT_USED"
-            project_uuid="P1"
-            module_uuid="[null]"
-            module_uuid_path="."
-            main_branch_project_uuid="[null]"
-            created_at="[null]"
-            long_name="[null]"
-            scope="PRJ"
-            qualifier="TRK"
-            kee="project"
-            name="project"
-            description="[null]"
-            private="[false]"
-            tags="[null]"
-            language="java"
-            copy_component_uuid="[null]"
-            developer_uuid="[null]"
-            path="[null]"
-            deprecated_kee="[null]"
-            authorization_updated_at="[null]"
-            id="1"
-            enabled="[false]"
-            root_uuid="P1"
-            b_changed="[false]"
-            b_copy_component_uuid="[null]"
-            b_description="[null]"
-            b_enabled="[false]"
-            b_uuid_path="[null]"
-            b_language="[null]"
-            b_long_name="[null]"
-            b_module_uuid="[null]"
-            b_module_uuid_path="[null]"
-            b_name="[null]"
-            b_path="[null]"
-            b_qualifier="[null]"/>
-
-  <!-- the directory -->
-  <projects organization_uuid="org1"
-            uuid="EFGH"
-            uuid_path="NOT_USED"
-            project_uuid="P1"
-            module_uuid="P1"
-            module_uuid_path="."
-            main_branch_project_uuid="[null]"
-            created_at="[null]"
-            long_name="[null]"
-            scope="DIR"
-            qualifier="DIR"
-            kee="project:my/dir"
-            name="my/dir"
-            description="[null]"
-            private="[false]"
-            tags="[null]"
-            language="java"
-            copy_component_uuid="[null]"
-            developer_uuid="[null]"
-            path="[null]"
-            deprecated_kee="[null]"
-            authorization_updated_at="[null]"
-            id="2"
-            enabled="[false]"
-            root_uuid="P1"
-            b_changed="[false]"
-            b_copy_component_uuid="[null]"
-            b_description="[null]"
-            b_enabled="[false]"
-            b_uuid_path="[null]"
-            b_language="[null]"
-            b_long_name="[null]"
-            b_module_uuid="[null]"
-            b_module_uuid_path="[null]"
-            b_name="[null]"
-            b_path="[null]"
-            b_qualifier="[null]"/>
-
-  <!-- the file -->
-  <projects organization_uuid="org1"
-            uuid="GHIJ"
-            uuid_path="NOT_USED"
-            project_uuid="P1"
-            module_uuid="P1"
-            module_uuid_path=".P1."
-            main_branch_project_uuid="[null]"
-            created_at="[null]"
-            long_name="[null]"
-            scope="FIL"
-            qualifier="FIL"
-            kee="project:my/dir/File.java"
-            name="my/dir/File.java"
-            description="[null]"
-            private="[false]"
-            tags="[null]"
-            language="java"
-            copy_component_uuid="[null]"
-            developer_uuid="[null]"
-            path="[null]"
-            deprecated_kee="[null]"
-            authorization_updated_at="[null]"
-            id="3"
-            enabled="[false]"
-            root_uuid="P1"
-            b_changed="[false]"
-            b_copy_component_uuid="[null]"
-            b_description="[null]"
-            b_enabled="[false]"
-            b_uuid_path="[null]"
-            b_language="[null]"
-            b_long_name="[null]"
-            b_module_uuid="[null]"
-            b_module_uuid_path="[null]"
-            b_name="[null]"
-            b_path="[null]"
-            b_qualifier="[null]"/>
-
-  <snapshots id="1"
-             uuid="u1"
-             component_uuid="P1"
-             status="P"
-             islast="[false]"
-             purge_status="1"
-             period1_mode="[null]"
-             period1_param="[null]"
-             period1_date="[null]"
-             period2_mode="[null]"
-             period2_param="[null]"
-             period2_date="[null]"
-             period3_mode="[null]"
-             period3_param="[null]"
-             period3_date="[null]"
-             period4_mode="[null]"
-             period4_param="[null]"
-             period4_date="[null]"
-             period5_mode="[null]"
-             period5_param="[null]"
-             period5_date="[null]"
-             created_at="1228222680000"
-             build_date="1228222680000"
-             version="[null]"
-      />
-
-  <!-- Open issue on file -->
-  <issues id="1"
-          kee="ISSUE-1"
-          component_uuid="GHIJ"
-          project_uuid="P1"
-          status="CLOSED"
-          issue_close_date="1396994400000"
-          resolution="REMOVED"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="1450000000000"
-          issue_creation_date="1366063200000"
-          issue_update_date="1396994400000"
-          created_at="1450000000000"
-          tags="[null]"
-          locations="[null]"
-          issue_type="[null]"
-      />
-
-  <!-- Open issue on directory -->
-  <issues id="2"
-          kee="ISSUE-2"
-          component_uuid="EFGH"
-          project_uuid="P1"
-          status="CLOSED"
-          issue_close_date="1396994400000"
-          resolution="REMOVED"
-          line="[null]"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="1450000000000"
-          issue_creation_date="1366063200000"
-          issue_update_date="1396994400000"
-          created_at="1450000000000"
-          tags="[null]"
-          locations="[null]"
-          issue_type="[null]"/>
-
-  <!-- Open issue on project -->
-  <issues id="3"
-          kee="ISSUE-3"
-          component_uuid="P1"
-          project_uuid="P1"
-          status="CLOSED"
-          issue_close_date="1396994400000"
-          resolution="REMOVED"
-          line="[null]"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="1450000000000"
-          issue_creation_date="1366063200000"
-          issue_update_date="1396994400000"
-          created_at="1450000000000"
-          tags="[null]"
-          locations="[null]"
-          issue_type="[null]"/>
-
-  <!-- Resolved issue on file -> not to be updated -->
-  <issues id="4"
-          kee="ISSUE-4"
-          component_uuid="GHIJ"
-          project_uuid="P1"
-          status="CLOSED"
-          issue_close_date="1449529200000"
-          resolution="FIXED"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="1450000000000"
-          issue_creation_date="1366063200000"
-          issue_update_date="1396908000000"
-          created_at="1450000000000"
-          tags="[null]"
-          locations="[null]"
-          issue_type="[null]"/>
-
-</dataset>
diff --git a/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/close_issues_clean_index_and_files_sources_of_specified_components.xml b/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/close_issues_clean_index_and_files_sources_of_specified_components.xml
deleted file mode 100644 (file)
index d371b7c..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-<dataset>
-
-  <!-- the project -->
-  <projects organization_uuid="org1"
-            uuid="P1"
-            uuid_path="NOT_USED"
-            project_uuid="P1"
-            module_uuid="[null]"
-            module_uuid_path="."
-            main_branch_project_uuid="[null]"
-            created_at="[null]"
-            long_name="[null]"
-            scope="PRJ"
-            qualifier="TRK"
-            kee="project"
-            name="project"
-            description="[null]"
-            private="[false]"
-            language="java"
-            copy_component_uuid="[null]"
-            developer_uuid="[null]"
-            path="[null]"
-            deprecated_kee="[null]"
-            authorization_updated_at="[null]"
-            id="1"
-            enabled="[false]"
-            root_uuid="P1"
-            b_changed="[false]"
-            b_copy_component_uuid="[null]"
-            b_description="[null]"
-            b_enabled="[false]"
-            b_uuid_path="[null]"
-            b_language="[null]"
-            b_long_name="[null]"
-            b_module_uuid="[null]"
-            b_module_uuid_path="[null]"
-            b_name="[null]"
-            b_path="[null]"
-            b_qualifier="[null]"/>
-
-  <!-- the directory -->
-  <projects organization_uuid="org1"
-            uuid="EFGH"
-            uuid_path="NOT_USED"
-            project_uuid="P1"
-            module_uuid="P1"
-            module_uuid_path="."
-            main_branch_project_uuid="[null]"
-            created_at="[null]"
-            long_name="[null]"
-            scope="DIR"
-            qualifier="DIR"
-            kee="project:my/dir"
-            name="my/dir"
-            description="[null]"
-            private="[false]"
-            language="java"
-            copy_component_uuid="[null]"
-            developer_uuid="[null]"
-            path="[null]"
-            deprecated_kee="[null]"
-            authorization_updated_at="[null]"
-            id="2"
-            enabled="[false]"
-            root_uuid="P1"
-            b_changed="[false]"
-            b_copy_component_uuid="[null]"
-            b_description="[null]"
-            b_enabled="[false]"
-            b_uuid_path="[null]"
-            b_language="[null]"
-            b_long_name="[null]"
-            b_module_uuid="[null]"
-            b_module_uuid_path="[null]"
-            b_name="[null]"
-            b_path="[null]"
-            b_qualifier="[null]"/>
-
-  <!-- the file -->
-  <projects organization_uuid="org1"
-            uuid="GHIJ"
-            uuid_path="NOT_USED"
-            project_uuid="P1"
-            module_uuid="P1"
-            module_uuid_path=".P1."
-            main_branch_project_uuid="[null]"
-            created_at="[null]"
-            long_name="[null]"
-            scope="FIL"
-            qualifier="FIL"
-            kee="project:my/dir/File.java"
-            name="my/dir/File.java"
-            description="[null]"
-            private="[false]"
-            language="java"
-            copy_component_uuid="[null]"
-            developer_uuid="[null]"
-            path="[null]"
-            deprecated_kee="[null]"
-            authorization_updated_at="[null]"
-            id="3"
-            enabled="[false]"
-            root_uuid="P1"
-            b_changed="[false]"
-            b_copy_component_uuid="[null]"
-            b_description="[null]"
-            b_enabled="[false]"
-            b_uuid_path="[null]"
-            b_language="[null]"
-            b_long_name="[null]"
-            b_module_uuid="[null]"
-            b_module_uuid_path="[null]"
-            b_name="[null]"
-            b_path="[null]"
-            b_qualifier="[null]"/>
-
-  <snapshots id="1"
-             uuid="u1"
-             component_uuid="P1"
-             status="P"
-             islast="[false]"
-             purge_status="[null]"
-             period1_mode="[null]"
-             period1_param="[null]"
-             period1_date="[null]"
-             period2_mode="[null]"
-             period2_param="[null]"
-             period2_date="[null]"
-             period3_mode="[null]"
-             period3_param="[null]"
-             period3_date="[null]"
-             period4_mode="[null]"
-             period4_param="[null]"
-             period4_date="[null]"
-             period5_mode="[null]"
-             period5_param="[null]"
-             period5_date="[null]"
-             created_at="1228222680000"
-             build_date="1228222680000"
-             version="[null]"
-  />
-
-  <!-- Open issue on file -->
-  <issues id="1"
-          kee="ISSUE-1"
-          component_uuid="GHIJ"
-          project_uuid="P1"
-          status="OPEN"
-          issue_close_date="[null]"
-          resolution="[null]"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1450000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-
-  <!-- Open issue on directory -->
-  <issues id="2"
-          kee="ISSUE-2"
-          component_uuid="EFGH"
-          project_uuid="P1"
-          status="OPEN"
-          issue_close_date="[null]"
-          resolution="[null]"
-          line="[null]"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1450000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-
-  <!-- Open issue on project -->
-  <issues id="3"
-          kee="ISSUE-3"
-          component_uuid="P1"
-          project_uuid="P1"
-          status="CONFIRM"
-          issue_close_date="[null]"
-          resolution="[null]"
-          line="[null]"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1450000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-
-  <!-- Resolved issue on file -> not to be updated -->
-  <issues id="4"
-          kee="ISSUE-4"
-          component_uuid="GHIJ"
-          project_uuid="P1"
-          status="CLOSED"
-          issue_close_date="1449529200000"
-          resolution="FIXED"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="1450000000000"
-          issue_creation_date="1366063200000"
-          issue_update_date="1396908000000"
-          created_at="1450000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-
-  <file_sources id="1"
-                project_uuid="P1"
-                file_uuid="GHIJ"
-                binary_data="[null]"
-                line_hashes="[null]"
-                line_count="0"
-                data_hash="321654987"
-                revision="123456789"
-                created_at="123456789"
-                updated_at="123456789"
-                src_hash="12345"
-                data_type="SOURCE"/>
-  <file_sources id="2"
-                project_uuid="P1"
-                file_uuid="KLMN"
-                binary_data="[null]"
-                line_hashes="[null]"
-                line_count="0"
-                data_hash="321654988"
-                revision="123456789"
-                created_at="123456789"
-                updated_at="123456789"
-                src_hash="123456"
-                data_type="SOURCE"/>
-  <file_sources id="3"
-                project_uuid="P1"
-                file_uuid="GHIJ"
-                binary_data="[null]"
-                line_hashes="[null]"
-                line_count="0"
-                data_hash="321654987"
-                revision="123456789"
-                created_at="123456789"
-                updated_at="123456789"
-                src_hash="12345"
-                data_type="TEST"/>
-  <file_sources id="4"
-                project_uuid="P1"
-                file_uuid="KLMN"
-                binary_data="[null]"
-                line_hashes="[null]"
-                line_count="0"
-                data_hash="321654988"
-                revision="123456789"
-                created_at="123456789"
-                updated_at="123456789"
-                src_hash="123456"
-                data_type="TEST"/>
-
-</dataset>
diff --git a/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_all_closed_issues-result.xml b/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_all_closed_issues-result.xml
deleted file mode 100644 (file)
index 0722a36..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-<!--
-
-  EXACTLY THE SAME FILE. NO ROWS HAVE BEEN DELETED.
-
--->
-<dataset>
-
-  <projects organization_uuid="org1"
-            uuid="1"
-            uuid_path="NOT_USED"
-            enabled="[true]"
-            root_id="[null]"
-            created_at="[null]"
-            long_name="[null]"
-            scope="PRJ"
-            qualifier="TRK"
-            kee="project"
-            name="project"
-            description="[null]"
-            private="[false]"
-            language="java"
-            copy_component_uuid="[null]"
-            developer_uuid="[null]"
-            authorization_updated_at="[null]"
-            id="1"/>
-
-  <snapshots id="1"
-             uuid="u1"
-             status="P"
-             islast="[true]"
-             purge_status="[null]"
-             period1_mode="[null]"
-             period1_param="[null]"
-             period1_date="[null]"
-             period2_mode="[null]"
-             period2_param="[null]"
-             period2_date="[null]"
-             period3_mode="[null]"
-             period3_param="[null]"
-             period3_date="[null]"
-             period4_mode="[null]"
-             period4_param="[null]"
-             period4_date="[null]"
-             period5_mode="[null]"
-             period5_param="[null]"
-             period5_date="[null]"
-             created_at="1228222680000"
-             build_date="1228222680000"
-             version="[null]"
-  />
-
-
-  <!-- old closed issues on file and project -->
-  <!--
-  <issues id="1" kee="ISSUE-1"
-          component_uuid="100"
-          project_uuid="1"
-          status="CLOSED"
-          issue_close_date="1262300400000"
-          resolution="FIXED" line="200" severity="BLOCKER" reporter="[null]" assignee="arthur" rule_id="500" manual_severity="[false]"
-          message="[null]" action_plan_key="[null]" gap="[null]" effort="[null]" issue_attributes="[null]" checksum="[null]" author_login="[null]"
-          updated_at="[null]" issue_creation_date="1366063200000" issue_update_date="1366063200000" created_at="2013-04-16"
-          locations="[null]" />
-  <issue_changes id="1" kee="[null]" issue_key="ISSUE-1" created_at="[null]" updated_at="[null]" user_login="admin" change_type="comment" change_data="abc" issue_change_creation_date="[null]"/>
-
-  <issues id="2" kee="ISSUE-2"
-          component_uuid="1"
-          project_uuid="1"
-          status="CLOSED"
-          issue_close_date="1262300400000"
-          resolution="FIXED" line="200" severity="BLOCKER" reporter="[null]" assignee="arthur" rule_id="500" manual_severity="[false]"
-          message="[null]" action_plan_key="[null]" gap="[null]" effort="[null]" issue_attributes="[null]" checksum="[null]" author_login="[null]"
-          updated_at="[null]" issue_creation_date="1366063200000" issue_update_date="1366063200000" created_at="2013-04-16" locations="[null]" locations="[null]"/>
-  <issue_changes id="2" kee="[null]" issue_key="ISSUE-2" created_at="[null]" updated_at="[null]" user_login="admin" change_type="comment" change_data="abc" issue_change_creation_date="[null]"/>
-  -->
-
-  <!-- old open issues -->
-  <issues id="3"
-          kee="ISSUE-3"
-          component_uuid="1"
-          project_uuid="1"
-          status="OPEN"
-          issue_close_date="[null]"
-          resolution="[null]"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          tags="[null]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="3"
-                 kee="[null]"
-                 issue_key="ISSUE-3"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-  <!-- recent open and closed issues -->
-  <issues id="4"
-          kee="ISSUE-4"
-          component_uuid="100"
-          project_uuid="1"
-          status="OPEN"
-          issue_close_date="[null]"
-          resolution="[null]"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          tags="[null]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="4"
-                 kee="[null]"
-                 issue_key="ISSUE-4"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-  <!--
-  <issues id="5" kee="ISSUE-5"
-          component_uuid="100"
-          project_uuid="1"
-          status="CLOSED"
-          issue_close_date="1735686000000"
-          resolution="FIXED" line="200" severity="BLOCKER" reporter="[null]" assignee="arthur" rule_id="500" manual_severity="[false]"
-          message="[null]" action_plan_key="[null]" gap="[null]" effort="[null]" issue_attributes="[null]" checksum="[null]" author_login="[null]"
-          updated_at="[null]" issue_creation_date="1366063200000" issue_update_date="1366063200000" created_at="2013-04-16" locations="[null]"/>
-  <issue_changes id="5" kee="[null]" issue_key="ISSUE-5" created_at="[null]" updated_at="[null]" user_login="admin" change_type="comment" change_data="abc" issue_change_creation_date="[null]"/>
-  -->
-</dataset>
diff --git a/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_all_closed_issues.xml b/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_all_closed_issues.xml
deleted file mode 100644 (file)
index cdb04fe..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-<dataset>
-
-  <projects organization_uuid="org1"
-            uuid="1"
-            uuid_path="NOT_USED"
-            enabled="[true]"
-            root_uuid="1"
-            project_uuid="1"
-            created_at="[null]"
-            long_name="[null]"
-            scope="PRJ"
-            qualifier="TRK"
-            kee="project"
-            name="project"
-            description="[null]"
-            private="[false]"
-            language="java"
-            copy_component_uuid="[null]"
-            developer_uuid="[null]"
-            authorization_updated_at="[null]"
-            id="1"/>
-
-  <snapshots id="1"
-             uuid="u1"
-             component_uuid="1"
-             status="P"
-             islast="[true]"
-             purge_status="[null]"
-             period1_mode="[null]"
-             period1_param="[null]"
-             period1_date="[null]"
-             period2_mode="[null]"
-             period2_param="[null]"
-             period2_date="[null]"
-             period3_mode="[null]"
-             period3_param="[null]"
-             period3_date="[null]"
-             period4_mode="[null]"
-             period4_param="[null]"
-             period4_date="[null]"
-             period5_mode="[null]"
-             period5_param="[null]"
-             period5_date="[null]"
-             created_at="1228222680000"
-             build_date="1228222680000"
-             version="[null]"
-  />
-
-
-  <!-- old closed issues on file and project -->
-  <issues id="1"
-          kee="ISSUE-1"
-          component_uuid="100"
-          project_uuid="1"
-          status="CLOSED"
-          issue_close_date="1262300400000"
-          resolution="FIXED"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="1"
-                 kee="[null]"
-                 issue_key="ISSUE-1"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-  <issues id="2"
-          kee="ISSUE-2"
-          component_uuid="1"
-          project_uuid="1"
-          status="CLOSED"
-          issue_close_date="1262300400000"
-          resolution="FIXED"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="2"
-                 kee="[null]"
-                 issue_key="ISSUE-2"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-
-  <!-- old open issues -->
-  <issues id="3"
-          kee="ISSUE-3"
-          component_uuid="1"
-          project_uuid="1"
-          status="OPEN"
-          issue_close_date="[null]"
-          resolution="[null]"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="3"
-                 kee="[null]"
-                 issue_key="ISSUE-3"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-  <!-- recent open and closed issues -->
-  <issues id="4"
-          kee="ISSUE-4"
-          component_uuid="100"
-          project_uuid="1"
-          status="OPEN"
-          issue_close_date="[null]"
-          resolution="[null]"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="4"
-                 kee="[null]"
-                 issue_key="ISSUE-4"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-  <issues id="5"
-          kee="ISSUE-5"
-          component_uuid="100"
-          project_uuid="1"
-          status="CLOSED"
-          issue_close_date="1735686000000"
-          resolution="FIXED"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="5"
-                 kee="[null]"
-                 issue_key="ISSUE-5"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-</dataset>
diff --git a/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_old_closed_issues-result.xml b/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_old_closed_issues-result.xml
deleted file mode 100644 (file)
index d7c45fc..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<dataset>
-
-  <projects organization_uuid="org1"
-            uuid="P1"
-            uuid_path="NOT_USED"
-            enabled="[true]"
-            root_id="[null]"
-            created_at="[null]"
-            long_name="[null]"
-            scope="PRJ"
-            qualifier="TRK"
-            kee="project"
-            name="project"
-            description="[null]"
-            private="[false]"
-            language="java"
-            copy_component_uuid="[null]"
-            developer_uuid="[null]"
-            authorization_updated_at="[null]"
-            id="1"/>
-
-  <snapshots id="1"
-             uuid="u1"
-             project_id="1"
-             status="P"
-             islast="[true]"
-             purge_status="[null]"
-             period1_mode="[null]"
-             period1_param="[null]"
-             period1_date="[null]"
-             period2_mode="[null]"
-             period2_param="[null]"
-             period2_date="[null]"
-             period3_mode="[null]"
-             period3_param="[null]"
-             period3_date="[null]"
-             period4_mode="[null]"
-             period4_param="[null]"
-             period4_date="[null]"
-             period5_mode="[null]"
-             period5_param="[null]"
-             period5_date="[null]"
-             created_at="1228222680000"
-             build_date="1228222680000"
-             version="[null]"
-  />
-
-  <!-- old closed issues on file and project -> to be purged -->
-  <!--
-  <issues id="1" kee="ISSUE-1"
-          component_uuid="100"
-          project_uuid="P1"
-          status="CLOSED"
-          issue_close_date="1262300400000"
-          resolution="FIXED" line="200" severity="BLOCKER" reporter="[null]" assignee="arthur" rule_id="500" manual_severity="[false]"
-          message="[null]" action_plan_key="[null]" gap="[null]" effort="[null]" issue_attributes="[null]" checksum="[null]" author_login="[null]"
-          updated_at="[null]" issue_creation_date="1366063200000" issue_update_date="1366063200000" created_at="2013-04-16" locations="[null]"/>
-  <issue_changes id="1" kee="[null]" issue_key="ISSUE-1" created_at="[null]" updated_at="[null]" user_login="admin" change_type="comment" change_data="abc" issue_change_creation_date="[null]"/>
-
-  <issues id="2" kee="ISSUE-2"
-          component_uuid="1"
-          project_uuid="P1"
-          status="CLOSED"
-          issue_close_date="1262300400000"
-          resolution="FIXED" line="200" severity="BLOCKER" reporter="[null]" assignee="arthur" rule_id="500" manual_severity="[false]"
-          message="[null]" action_plan_key="[null]" gap="[null]" effort="[null]" issue_attributes="[null]" checksum="[null]" author_login="[null]"
-          updated_at="[null]" issue_creation_date="1366063200000" issue_update_date="1366063200000" created_at="2013-04-16" locations="[null]"/>
-  <issue_changes id="2" kee="[null]" issue_key="ISSUE-2" created_at="[null]" updated_at="[null]" user_login="admin" change_type="comment" change_data="abc" issue_change_creation_date="[null]"/>
-  -->
-
-  <!-- old open issues -> do not purge -->
-  <issues id="3"
-          kee="ISSUE-3"
-          component_uuid="1"
-          project_uuid="P1"
-          status="OPEN"
-          issue_close_date="[null]"
-          resolution="[null]"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          tags="[null]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="3"
-                 kee="[null]"
-                 issue_key="ISSUE-3"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-  <!-- recent open and closed issues -> do not purge -->
-  <issues id="4"
-          kee="ISSUE-4"
-          component_uuid="100"
-          project_uuid="P1"
-          status="OPEN"
-          issue_close_date="[null]"
-          resolution="[null]"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          tags="[null]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="4"
-                 kee="[null]"
-                 issue_key="ISSUE-4"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-  <issues id="5"
-          kee="ISSUE-5"
-          component_uuid="100"
-          project_uuid="P1"
-          status="CLOSED"
-          issue_close_date="1735686000000"
-          resolution="FIXED"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          tags="[null]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="5"
-                 kee="[null]"
-                 issue_key="ISSUE-5"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-</dataset>
diff --git a/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_old_closed_issues.xml b/server/sonar-db-dao/src/test/resources/org/sonar/db/purge/PurgeDaoTest/should_delete_old_closed_issues.xml
deleted file mode 100644 (file)
index 2d6ceed..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-<dataset>
-
-  <projects organization_uuid="org1"
-            uuid="P1"
-            uuid_path="NOT_USED"
-            enabled="[true]"
-            root_uuid="P1"
-            project_uuid="P1"
-            created_at="[null]"
-            long_name="[null]"
-            scope="PRJ"
-            qualifier="TRK"
-            kee="project"
-            name="project"
-            description="[null]"
-            private="[false]"
-            language="java"
-            copy_component_uuid="[null]"
-            developer_uuid="[null]"
-            authorization_updated_at="[null]"
-            id="1"/>
-
-  <snapshots id="1"
-             uuid="u1"
-             component_uuid="P1"
-             status="P"
-             islast="[true]"
-             purge_status="[null]"
-             period1_mode="[null]"
-             period1_param="[null]"
-             period1_date="[null]"
-             period2_mode="[null]"
-             period2_param="[null]"
-             period2_date="[null]"
-             period3_mode="[null]"
-             period3_param="[null]"
-             period3_date="[null]"
-             period4_mode="[null]"
-             period4_param="[null]"
-             period4_date="[null]"
-             period5_mode="[null]"
-             period5_param="[null]"
-             period5_date="[null]"
-             created_at="1228222680000"
-             build_date="1228222680000"
-             version="[null]"
-  />
-
-  <!-- old closed issues on file and project -> to be purged -->
-  <issues id="1"
-          kee="ISSUE-1"
-          component_uuid="100"
-          project_uuid="P1"
-          status="CLOSED"
-          issue_close_date="1262300400000"
-          resolution="FIXED"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="1"
-                 kee="[null]"
-                 issue_key="ISSUE-1"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-  <issues id="2"
-          kee="ISSUE-2"
-          component_uuid="1"
-          project_uuid="P1"
-          status="CLOSED"
-          issue_close_date="1262300400000"
-          resolution="FIXED"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"/>
-  <issue_changes id="2"
-                 kee="[null]"
-                 issue_key="ISSUE-2"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-
-  <!-- old open issues -> do not purge -->
-  <issues id="3"
-          kee="ISSUE-3"
-          component_uuid="1"
-          project_uuid="P1"
-          status="OPEN"
-          issue_close_date="[null]"
-          resolution="[null]"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="3"
-                 kee="[null]"
-                 issue_key="ISSUE-3"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-  <!-- recent open and closed issues -> do not purge -->
-  <issues id="4"
-          kee="ISSUE-4"
-          component_uuid="100"
-          project_uuid="P1"
-          status="OPEN"
-          issue_close_date="[null]"
-          resolution="[null]"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="4"
-                 kee="[null]"
-                 issue_key="ISSUE-4"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-  <issues id="5"
-          kee="ISSUE-5"
-          component_uuid="100"
-          project_uuid="P1"
-          status="CLOSED"
-          issue_close_date="1735686000000"
-          resolution="FIXED"
-          line="200"
-          severity="BLOCKER"
-          reporter="[null]"
-          assignee="arthur"
-          rule_id="500"
-          manual_severity="[false]"
-          message="[null]"
-          action_plan_key="[null]"
-          gap="[null]"
-          effort="[null]"
-          issue_attributes="[null]"
-          checksum="[null]"
-          author_login="[null]"
-          updated_at="[null]"
-          issue_creation_date="1366063200000"
-          issue_update_date="1366063200000"
-          created_at="1400000000000"
-          locations="[null]"
-          issue_type="[null]"/>
-  <issue_changes id="5"
-                 kee="[null]"
-                 issue_key="ISSUE-5"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 user_login="admin_uuid"
-                 change_type="comment"
-                 change_data="abc"
-                 issue_change_creation_date="[null]"/>
-
-</dataset>
index 07d488e07af95654db3dd4c0c23c2941e1c413b2..083689ee498787d047f6d4a9913f9105cacda8c3 100644 (file)
@@ -21,6 +21,8 @@ package org.sonar.server.issue;
 
 import java.util.Collection;
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 import org.junit.Test;
 import org.sonar.api.rule.RuleKey;
 import org.sonar.api.rules.Rule;
@@ -39,6 +41,11 @@ import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.issue.IssueDto;
 import org.sonar.db.issue.IssueMapper;
+import org.sonar.db.rule.RuleDefinitionDto;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.sonar.db.component.ComponentTesting.newFileDto;
+import static org.sonar.db.component.ComponentTesting.newModuleDto;
 
 public class IssueStorageTest {
 
@@ -47,8 +54,6 @@ public class IssueStorageTest {
   @org.junit.Rule
   public DbTester db = DbTester.create(System2.INSTANCE);
 
-  private IssueChangeContext context = IssueChangeContext.createUser(new Date(system2.now()), "user_uuid");
-
   private DbClient dbClient = db.getDbClient();
 
   @Test
@@ -81,10 +86,13 @@ public class IssueStorageTest {
       .setProjectUuid("uuid-10")
       .setComponentKey("struts:Action");
 
+    assertThat(db.countRowsOfTable("issues")).isEqualTo(0);
+    assertThat(db.countRowsOfTable("issue_changes")).isEqualTo(0);
+
     saver.save(issue);
 
-    db.assertDbUnit(getClass(), "should_insert_new_issues-result.xml",
-      new String[] {"id", "created_at", "updated_at", "issue_change_creation_date"}, "issues", "issue_changes");
+    assertThat(db.countRowsOfTable("issues")).isEqualTo(1);
+    assertThat(db.countRowsOfTable("issue_changes")).isEqualTo(1);
   }
 
   @Test
@@ -117,11 +125,14 @@ public class IssueStorageTest {
       .setProjectUuid("uuid-10")
       .setComponentKey("struts:Action");
 
+    assertThat(db.countRowsOfTable("issues")).isEqualTo(0);
+    assertThat(db.countRowsOfTable("issue_changes")).isEqualTo(0);
+
     saver.save(db.getSession(), issue);
     db.getSession().commit();
 
-    db.assertDbUnit(getClass(), "should_insert_new_issues-result.xml",
-      new String[] {"id", "created_at", "updated_at", "issue_change_creation_date"}, "issues", "issue_changes");
+    assertThat(db.countRowsOfTable("issues")).isEqualTo(1);
+    assertThat(db.countRowsOfTable("issue_changes")).isEqualTo(1);
   }
 
   @Test
@@ -156,100 +167,197 @@ public class IssueStorageTest {
       .setComponentUuid("component-uuid")
       .setProjectUuid("project-uuid");
 
+    assertThat(db.countRowsOfTable("issues")).isEqualTo(0);
+    assertThat(db.countRowsOfTable("issue_changes")).isEqualTo(0);
+
     saver.save(db.getSession(), issue);
     db.getSession().commit();
 
-    db.assertDbUnit(getClass(), "should_insert_new_issues-result.xml", new String[] {"id", "created_at", "updated_at",
-      "issue_change_creation_date"}, "issues", "issue_changes");
+    assertThat(db.countRowsOfTable("issues")).isEqualTo(1);
+    assertThat(db.countRowsOfTable("issue_changes")).isEqualTo(1);
   }
 
   @Test
   public void batch_update_issues() {
-    db.prepareDbUnit(getClass(), "should_update_issues.xml");
-
     FakeBatchSaver saver = new FakeBatchSaver(dbClient, new FakeRuleFinder());
 
-    DefaultIssueComment comment = DefaultIssueComment.create("ABCDE", "user_uuid", "the comment");
-    // override generated key
-    comment.setKey("FGHIJ");
+    RuleDefinitionDto rule = db.rules().insert();
+    ComponentDto project = db.components().insertMainBranch();
+    ComponentDto module = db.components().insertComponent(newModuleDto(project));
+    ComponentDto file = db.components().insertComponent(newFileDto(module));
 
     Date date = DateUtils.parseDateTime("2013-05-18T12:00:00+0000");
     DefaultIssue issue = new DefaultIssue()
       .setKey("ABCDE")
       .setType(RuleType.BUG)
+      .setNew(true)
+      .setRuleKey(rule.getKey())
+      .setProjectUuid(project.uuid())
+      .setComponentUuid(file.uuid())
+      .setLine(5000)
+      .setEffort(Duration.create(10L))
+      .addComment(DefaultIssueComment.create("ABCDE", "user_uuid", "first comment"))
+      .setResolution("OPEN")
+      .setStatus("OPEN")
+      .setSeverity("BLOCKER")
+      .setAttribute("foo", "bar")
+      .setCreationDate(date)
+      .setUpdateDate(date)
+      .setCloseDate(date);
+
+    saver.save(issue);
+
+    assertThat(db.countRowsOfTable("issues")).isEqualTo(1);
+    assertThat(db.countRowsOfTable("issue_changes")).isEqualTo(1);
+
+    DefaultIssue updated = new DefaultIssue()
+      .setKey(issue.key())
+      .setType(RuleType.VULNERABILITY)
       .setNew(false)
       .setChanged(true)
 
       // updated fields
-      .setLine(5000)
-      .setEffort(Duration.create(10L))
+      .setLine(issue.getLine() + 10)
+      .setProjectUuid("foo")
+      .setEffort(Duration.create(issue.effortInMinutes() + 10L))
       .setChecksum("FFFFF")
       .setAuthorLogin("simon")
       .setAssigneeUuid("loic")
-      .setFieldChange(context, "severity", "INFO", "BLOCKER")
+      .setFieldChange(IssueChangeContext.createUser(new Date(), "user_uuid"), "severity", "INFO", "BLOCKER")
+      .addComment(DefaultIssueComment.create("ABCDE", "user_uuid", "the comment"))
       .setResolution("FIXED")
       .setStatus("RESOLVED")
-      .setSeverity("BLOCKER")
-      .setAttribute("foo", "bar")
-      .addComment(comment)
-      .setCreationDate(date)
-      .setUpdateDate(date)
-      .setCloseDate(date)
-      .setComponentUuid("uuid-100")
-      .setProjectUuid("uuid-10")
+      .setSeverity("MAJOR")
+      .setAttribute("fox", "bax")
+      .setCreationDate(DateUtils.addDays(date, 1))
+      .setUpdateDate(DateUtils.addDays(date, 1))
+      .setCloseDate(DateUtils.addDays(date, 1))
 
       // unmodifiable fields
       .setRuleKey(RuleKey.of("xxx", "unknown"))
-      .setComponentKey("not:a:component");
-
-    saver.save(issue);
-
-    db.assertDbUnit(getClass(), "should_update_issues-result.xml", new String[] {"id", "created_at", "updated_at", "issue_change_creation_date"}, "issues", "issue_changes");
+      .setComponentKey("struts:Action")
+      .setProjectKey("struts");
+
+    saver.save(updated);
+
+    assertThat(db.countRowsOfTable("issues")).isEqualTo(1);
+    assertThat(db.selectFirst("select * from issues"))
+      .containsEntry("ASSIGNEE", updated.assignee())
+      .containsEntry("AUTHOR_LOGIN", updated.authorLogin())
+      .containsEntry("CHECKSUM", updated.checksum())
+      .containsEntry("COMPONENT_UUID", issue.componentUuid())
+      .containsEntry("EFFORT", updated.effortInMinutes())
+      .containsEntry("ISSUE_ATTRIBUTES", "fox=bax")
+      .containsEntry("ISSUE_TYPE", (byte) 3)
+      .containsEntry("KEE", issue.key())
+      .containsEntry("LINE", (long) updated.line())
+      .containsEntry("PROJECT_UUID", updated.projectUuid())
+      .containsEntry("RESOLUTION", updated.resolution())
+      .containsEntry("STATUS", updated.status())
+      .containsEntry("SEVERITY", updated.severity());
+
+    List<Map<String, Object>> rows = db.select("select * from issue_changes order by id");
+    assertThat(rows).hasSize(3);
+    assertThat(rows.get(0))
+      .extracting("CHANGE_DATA", "CHANGE_TYPE", "USER_LOGIN")
+      .containsExactlyInAnyOrder("first comment", "comment", "user_uuid");
+    assertThat(rows.get(1))
+      .extracting("CHANGE_DATA", "CHANGE_TYPE", "USER_LOGIN")
+      .containsExactlyInAnyOrder("the comment", "comment", "user_uuid");
+    assertThat(rows.get(2))
+      .extracting("CHANGE_DATA", "CHANGE_TYPE", "USER_LOGIN")
+      .containsExactlyInAnyOrder("severity=INFO|BLOCKER", "diff", "user_uuid");
   }
 
   @Test
   public void server_update_issues() {
-    db.prepareDbUnit(getClass(), "should_update_issues.xml");
-
     ComponentDto project = new ComponentDto().setId(10L).setUuid("whatever-uuid");
     ComponentDto component = new ComponentDto().setId(100L).setUuid("whatever-uuid-2");
     FakeServerSaver saver = new FakeServerSaver(dbClient, new FakeRuleFinder(), component, project);
 
-    DefaultIssueComment comment = DefaultIssueComment.create("ABCDE", "user_uuid", "the comment");
-    // override generated key
-    comment.setKey("FGHIJ");
+    RuleDefinitionDto rule = db.rules().insert();
 
     Date date = DateUtils.parseDateTime("2013-05-18T12:00:00+0000");
     DefaultIssue issue = new DefaultIssue()
       .setKey("ABCDE")
       .setType(RuleType.BUG)
+      .setNew(true)
+      .setRuleKey(rule.getKey())
+      .setProjectUuid(project.uuid())
+      .setComponentUuid(component.uuid())
+      .setLine(5000)
+      .setEffort(Duration.create(10L))
+      .addComment(DefaultIssueComment.create("ABCDE", "user_uuid", "first comment"))
+      .setResolution("OPEN")
+      .setStatus("OPEN")
+      .setSeverity("BLOCKER")
+      .setAttribute("foo", "bar")
+      .setCreationDate(date)
+      .setUpdateDate(date)
+      .setCloseDate(date);
+
+    saver.save(issue);
+
+    assertThat(db.countRowsOfTable("issues")).isEqualTo(1);
+    assertThat(db.countRowsOfTable("issue_changes")).isEqualTo(1);
+
+    DefaultIssue updated = new DefaultIssue()
+      .setKey(issue.key())
+      .setType(RuleType.VULNERABILITY)
       .setNew(false)
       .setChanged(true)
 
       // updated fields
-      .setLine(5000)
-      .setEffort(Duration.create(10L))
+      .setLine(issue.getLine() + 10)
+      .setProjectUuid("foo")
+      .setEffort(Duration.create(issue.effortInMinutes() + 10L))
       .setChecksum("FFFFF")
       .setAuthorLogin("simon")
       .setAssigneeUuid("loic")
-      .setFieldChange(context, "severity", "INFO", "BLOCKER")
+      .setFieldChange(IssueChangeContext.createUser(new Date(), "user_uuid"), "severity", "INFO", "BLOCKER")
+      .addComment(DefaultIssueComment.create("ABCDE", "user_uuid", "the comment"))
       .setResolution("FIXED")
       .setStatus("RESOLVED")
-      .setSeverity("BLOCKER")
-      .setAttribute("foo", "bar")
-      .addComment(comment)
-      .setCreationDate(date)
-      .setUpdateDate(date)
-      .setCloseDate(date)
-      .setProjectUuid("uuid-10")
+      .setSeverity("MAJOR")
+      .setAttribute("fox", "bax")
+      .setCreationDate(DateUtils.addDays(date, 1))
+      .setUpdateDate(DateUtils.addDays(date, 1))
+      .setCloseDate(DateUtils.addDays(date, 1))
 
       // unmodifiable fields
       .setRuleKey(RuleKey.of("xxx", "unknown"))
-      .setComponentKey("not:a:component");
-
-    saver.save(issue);
-
-    db.assertDbUnit(getClass(), "should_update_issues-result.xml", new String[] {"id", "created_at", "updated_at", "issue_change_creation_date"}, "issues", "issue_changes");
+      .setComponentKey("struts:Action")
+      .setProjectKey("struts");
+
+    saver.save(updated);
+
+    assertThat(db.countRowsOfTable("issues")).isEqualTo(1);
+    assertThat(db.selectFirst("select * from issues"))
+      .containsEntry("ASSIGNEE", updated.assignee())
+      .containsEntry("AUTHOR_LOGIN", updated.authorLogin())
+      .containsEntry("CHECKSUM", updated.checksum())
+      .containsEntry("COMPONENT_UUID", issue.componentUuid())
+      .containsEntry("EFFORT", updated.effortInMinutes())
+      .containsEntry("ISSUE_ATTRIBUTES", "fox=bax")
+      .containsEntry("ISSUE_TYPE", (byte) 3)
+      .containsEntry("KEE", issue.key())
+      .containsEntry("LINE", (long) updated.line())
+      .containsEntry("PROJECT_UUID", updated.projectUuid())
+      .containsEntry("RESOLUTION", updated.resolution())
+      .containsEntry("STATUS", updated.status())
+      .containsEntry("SEVERITY", updated.severity());
+
+    List<Map<String, Object>> rows = db.select("select * from issue_changes order by id");
+    assertThat(rows).hasSize(3);
+    assertThat(rows.get(0))
+      .extracting("CHANGE_DATA", "CHANGE_TYPE", "USER_LOGIN")
+      .containsExactlyInAnyOrder("first comment", "comment", "user_uuid");
+    assertThat(rows.get(1))
+      .extracting("CHANGE_DATA", "CHANGE_TYPE", "USER_LOGIN")
+      .containsExactlyInAnyOrder("the comment", "comment", "user_uuid");
+    assertThat(rows.get(2))
+      .extracting("CHANGE_DATA", "CHANGE_TYPE", "USER_LOGIN")
+      .containsExactlyInAnyOrder("severity=INFO|BLOCKER", "diff", "user_uuid");
   }
 
   static class FakeBatchSaver extends IssueStorage {
index 023420d92ad3d1ba54bfbac7fcb112656b0e122b..d03f432197ea670f8a925dfa3b632eaa2a53847b 100644 (file)
@@ -21,6 +21,8 @@ package org.sonar.server.issue;
 
 import java.util.Collection;
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 import org.junit.Before;
 import org.junit.Test;
 import org.sonar.api.rule.RuleKey;
@@ -36,11 +38,15 @@ import org.sonar.core.issue.DefaultIssueComment;
 import org.sonar.core.issue.IssueChangeContext;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
+import org.sonar.db.component.ComponentDto;
+import org.sonar.db.rule.RuleDefinitionDto;
 import org.sonar.server.issue.index.IssueIndexer;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
+import static org.sonar.db.component.ComponentTesting.newFileDto;
+import static org.sonar.db.component.ComponentTesting.newModuleDto;
 
 public class ServerIssueStorageTest {
 
@@ -78,21 +84,24 @@ public class ServerIssueStorageTest {
 
   @Test
   public void should_insert_new_issues() {
-    dbTester.prepareDbUnit(getClass(), "should_insert_new_issues.xml");
+    RuleDefinitionDto rule = dbTester.rules().insert();
+    ComponentDto project = dbTester.components().insertMainBranch();
+    ComponentDto module = dbTester.components().insertComponent(newModuleDto(project));
+    ComponentDto file = dbTester.components().insertComponent(newFileDto(module));
 
-    DefaultIssueComment comment = DefaultIssueComment.create("ABCDE", "user_uuid", "the comment");
+    String issueKey = "ABCDE";
+    DefaultIssueComment comment = DefaultIssueComment.create(issueKey, "user_uuid", "the comment");
     // override generated key
     comment.setKey("FGHIJ");
 
     Date date = DateUtils.parseDateTime("2013-05-18T12:00:00+0000");
     DefaultIssue issue = new DefaultIssue()
-      .setKey("ABCDE")
+      .setKey(issueKey)
       .setType(RuleType.BUG)
       .setNew(true)
-
-      .setRuleKey(RuleKey.of("squid", "AvoidCycle"))
-      .setProjectUuid("ABCD")
-      .setComponentUuid("BCDE")
+      .setRuleKey(rule.getKey())
+      .setProjectUuid(project.uuid())
+      .setComponentUuid(file.uuid())
       .setLine(5000)
       .setEffort(Duration.create(10L))
       .setResolution("OPEN")
@@ -106,53 +115,107 @@ public class ServerIssueStorageTest {
 
     underTest.save(issue);
 
-    dbTester.assertDbUnit(getClass(), "should_insert_new_issues-result.xml",
-      new String[] {"id", "created_at", "updated_at", "issue_change_creation_date"}, "issues", "issue_changes");
+    assertThat(dbTester.countRowsOfTable("issues")).isEqualTo(1);
+    assertThat(dbTester.selectFirst("select * from issues"))
+      .containsEntry("PROJECT_UUID", project.uuid())
+      .containsEntry("COMPONENT_UUID", file.uuid())
+      .containsEntry("KEE", issue.key())
+      .containsEntry("RESOLUTION", issue.resolution())
+      .containsEntry("STATUS", issue.status())
+      .containsEntry("SEVERITY", issue.severity());
+
+    assertThat(dbTester.countRowsOfTable("issue_changes")).isEqualTo(1);
+    assertThat(dbTester.selectFirst("select * from issue_changes"))
+      .containsEntry("KEE", comment.key())
+      .containsEntry("ISSUE_KEY", issue.key())
+      .containsEntry("CHANGE_DATA", comment.markdownText())
+      .containsEntry("USER_LOGIN", comment.userUuid());
   }
 
   @Test
   public void should_update_issues() {
-    dbTester.prepareDbUnit(getClass(), "should_update_issues.xml");
-
-    IssueChangeContext context = IssueChangeContext.createUser(new Date(), "user_uuid");
-
-    DefaultIssueComment comment = DefaultIssueComment.create("ABCDE", "user_uuid", "the comment");
-    // override generated key
-    comment.setKey("FGHIJ");
+    RuleDefinitionDto rule = dbTester.rules().insert();
+    ComponentDto project = dbTester.components().insertMainBranch();
+    ComponentDto module = dbTester.components().insertComponent(newModuleDto(project));
+    ComponentDto file = dbTester.components().insertComponent(newFileDto(module));
 
     Date date = DateUtils.parseDateTime("2013-05-18T12:00:00+0000");
     DefaultIssue issue = new DefaultIssue()
       .setKey("ABCDE")
       .setType(RuleType.BUG)
+      .setNew(true)
+      .setRuleKey(rule.getKey())
+      .setProjectUuid(project.uuid())
+      .setComponentUuid(file.uuid())
+      .setLine(5000)
+      .setEffort(Duration.create(10L))
+      .setResolution("OPEN")
+      .setStatus("OPEN")
+      .setSeverity("BLOCKER")
+      .setAttribute("foo", "bar")
+      .setCreationDate(date)
+      .setUpdateDate(date)
+      .setCloseDate(date);
+
+    underTest.save(issue);
+
+    assertThat(dbTester.countRowsOfTable("issues")).isEqualTo(1);
+    assertThat(dbTester.countRowsOfTable("issue_changes")).isEqualTo(0);
+
+    DefaultIssue updated = new DefaultIssue()
+      .setKey(issue.key())
+      .setType(RuleType.VULNERABILITY)
       .setNew(false)
       .setChanged(true)
 
       // updated fields
-      .setLine(5000)
-      .setProjectUuid("CDEF")
-      .setEffort(Duration.create(10L))
+      .setLine(issue.getLine() + 10)
+      .setProjectUuid("foo")
+      .setEffort(Duration.create(issue.effortInMinutes() + 10L))
       .setChecksum("FFFFF")
       .setAuthorLogin("simon")
       .setAssigneeUuid("loic")
-      .setFieldChange(context, "severity", "INFO", "BLOCKER")
+      .setFieldChange(IssueChangeContext.createUser(new Date(), "user_uuid"), "severity", "INFO", "BLOCKER")
+      .addComment(DefaultIssueComment.create("ABCDE", "user_uuid", "the comment"))
       .setResolution("FIXED")
       .setStatus("RESOLVED")
-      .setSeverity("BLOCKER")
-      .setAttribute("foo", "bar")
-      .addComment(comment)
-      .setCreationDate(date)
-      .setUpdateDate(date)
-      .setCloseDate(date)
+      .setSeverity("MAJOR")
+      .setAttribute("fox", "bax")
+      .setCreationDate(DateUtils.addDays(date, 1))
+      .setUpdateDate(DateUtils.addDays(date, 1))
+      .setCloseDate(DateUtils.addDays(date, 1))
 
       // unmodifiable fields
       .setRuleKey(RuleKey.of("xxx", "unknown"))
       .setComponentKey("struts:Action")
       .setProjectKey("struts");
 
-    underTest.save(issue);
-
-    dbTester.assertDbUnit(getClass(), "should_update_issues-result.xml",
-      new String[] {"id", "created_at", "updated_at", "issue_change_creation_date"}, "issues", "issue_changes");
+    underTest.save(updated);
+
+    assertThat(dbTester.countRowsOfTable("issues")).isEqualTo(1);
+    assertThat(dbTester.selectFirst("select * from issues"))
+      .containsEntry("ASSIGNEE", updated.assignee())
+      .containsEntry("AUTHOR_LOGIN", updated.authorLogin())
+      .containsEntry("CHECKSUM", updated.checksum())
+      .containsEntry("COMPONENT_UUID", issue.componentUuid())
+      .containsEntry("EFFORT", updated.effortInMinutes())
+      .containsEntry("ISSUE_ATTRIBUTES", "fox=bax")
+      .containsEntry("ISSUE_TYPE", (byte) 3)
+      .containsEntry("KEE", issue.key())
+      .containsEntry("LINE", (long) updated.line())
+      .containsEntry("PROJECT_UUID", updated.projectUuid())
+      .containsEntry("RESOLUTION", updated.resolution())
+      .containsEntry("STATUS", updated.status())
+      .containsEntry("SEVERITY", updated.severity());
+
+    List<Map<String, Object>> rows = dbTester.select("select * from issue_changes order by id");
+    assertThat(rows).hasSize(2);
+    assertThat(rows.get(0))
+      .extracting("CHANGE_DATA", "CHANGE_TYPE", "USER_LOGIN")
+      .containsExactlyInAnyOrder("the comment", "comment", "user_uuid");
+    assertThat(rows.get(1))
+      .extracting("CHANGE_DATA", "CHANGE_TYPE", "USER_LOGIN")
+      .containsExactlyInAnyOrder("severity=INFO|BLOCKER", "diff", "user_uuid");
   }
 
   static class FakeRuleFinder implements RuleFinder {
diff --git a/server/sonar-server/src/test/resources/org/sonar/server/issue/IssueStorageTest/should_insert_new_issues-result.xml b/server/sonar-server/src/test/resources/org/sonar/server/issue/IssueStorageTest/should_insert_new_issues-result.xml
deleted file mode 100644 (file)
index 5bf2242..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<dataset>
-  <issues id="1" kee="ABCDE" resolution="OPEN" status="OPEN" severity="BLOCKER" manual_severity="[false]"
-          assignee="[null]"
-          author_login="[null]"
-          checksum="[null]"
-          gap="[null]"
-          effort="10"
-          message="[null]"
-          line="5000"
-          component_uuid="uuid-100"
-          project_uuid="uuid-10"
-          rule_id="200"
-          created_at="[null]"
-          updated_at="[null]"
-          reporter="[null]"
-          issue_attributes="foo=bar"
-          tags="[null]"
-          action_plan_key="[null]"
-          issue_creation_date="1368878400000"
-          issue_update_date="1368878400000"
-          issue_close_date="1368878400000"
-          locations="[null]"
-          issue_type="2"
-    />
-
-  <issue_changes id="1" kee="FGHIJ" issue_key="ABCDE" change_type="comment" user_login="user_uuid"
-                 change_data="the comment"
-                 created_at="[null]" updated_at="[null]" issue_change_creation_date="[null]"/>
-
-</dataset>
diff --git a/server/sonar-server/src/test/resources/org/sonar/server/issue/IssueStorageTest/should_update_issues-result.xml b/server/sonar-server/src/test/resources/org/sonar/server/issue/IssueStorageTest/should_update_issues-result.xml
deleted file mode 100644 (file)
index 0a39d21..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<dataset>
-  <issues id="1"
-          kee="ABCDE"
-          resolution="FIXED"
-          status="RESOLVED"
-          severity="BLOCKER"
-          manual_severity="[false]"
-          assignee="loic"
-          author_login="simon"
-          checksum="FFFFF"
-          gap="[null]"
-          effort="10"
-          message="[null]"
-          line="5000"
-          component_uuid="uuid-100"
-          project_uuid="uuid-10"
-          rule_id="200"
-          created_at="2013-05-18"
-          updated_at="2013-05-18"
-          reporter="[null]"
-          issue_attributes="foo=bar"
-          tags="[null]"
-          action_plan_key="[null]"
-          issue_creation_date="1368878400000"
-          issue_update_date="1368878400000"
-          issue_close_date="1368878400000"
-          locations="[null]"
-          issue_type="2"
-    />
-
-  <issue_changes id="1" kee="FGHIJ" issue_key="ABCDE" change_type="comment" user_login="user_uuid"
-                 change_data="the comment" created_at="[null]" updated_at="[null]" issue_change_creation_date="[null]"/>
-  <issue_changes id="2" kee="[null]" issue_key="ABCDE" change_type="diff" user_login="user_uuid"
-                 change_data="severity=INFO|BLOCKER" created_at="[null]" updated_at="[null]"
-                 issue_change_creation_date="[null]"/>
-</dataset>
diff --git a/server/sonar-server/src/test/resources/org/sonar/server/issue/IssueStorageTest/should_update_issues.xml b/server/sonar-server/src/test/resources/org/sonar/server/issue/IssueStorageTest/should_update_issues.xml
deleted file mode 100644 (file)
index 478c01e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<dataset>
-  <issues id="1"
-          kee="ABCDE"
-          resolution="OPEN"
-          status="OPEN"
-          severity="BLOCKER"
-          manual_severity="[false]"
-          assignee="loic"
-          author_login="simon"
-          checksum="FFFFF"
-          gap="[null]"
-          effort="[null]"
-          message="[null]"
-          line="3000"
-          component_uuid="uuid-100"
-          project_uuid="uuid-11"
-          rule_id="200"
-          created_at="1400000000000"
-          updated_at="1400000000000"
-          reporter="[null]"
-          issue_attributes="foo=bar"
-          tags="[null]"
-          action_plan_key="[null]"
-          issue_creation_date="1262300400000"
-          issue_update_date="1265065200000"
-          issue_close_date="[null]"
-          locations="[null]"
-          issue_type="2"
-    />
-</dataset>
diff --git a/server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_insert_new_issues-result.xml b/server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_insert_new_issues-result.xml
deleted file mode 100644 (file)
index cb2f332..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<dataset>
-  <issues id="1" kee="ABCDE" resolution="OPEN" status="OPEN" severity="BLOCKER" manual_severity="[false]"
-          assignee="[null]"
-          author_login="[null]"
-          checksum="[null]"
-          gap="[null]"
-          effort="10"
-          message="[null]"
-          line="5000"
-          component_uuid="BCDE"
-          project_uuid="ABCD"
-          rule_id="200"
-          created_at="1000000000"
-          updated_at="1000000000"
-          reporter="[null]"
-          issue_attributes="foo=bar"
-          tags="[null]"
-          action_plan_key="[null]"
-          issue_creation_date="1368878400000"
-          issue_update_date="1368878400000"
-          issue_close_date="1368878400000"
-          locations="[null]"
-          issue_type="2"
-      />
-
-  <issue_changes id="1" kee="FGHIJ" issue_key="ABCDE" change_type="comment" user_login="user_uuid"
-                 change_data="the comment"
-                 created_at="[null]" updated_at="[null]" issue_change_creation_date="[null]"/>
-
-</dataset>
diff --git a/server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_insert_new_issues.xml b/server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_insert_new_issues.xml
deleted file mode 100644 (file)
index 222670b..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<dataset>
-
-  <organizations uuid="org1"
-                 kee="org1_key"
-                 name="org1_name"
-                 guarded="[false]"
-                 new_project_private="[false]"
-                 default_quality_gate_uuid="DEFAULT_QG"
-                 created_at="1000"
-                 updated_at="2000"/>
-
-  <projects organization_uuid="org1"
-            uuid="ABCD"
-            uuid_path="NOT_USED"
-            root_uuid="ABCD"
-            project_uuid="ABCD"
-            id="10"
-            scope="PRJ"
-            qualifier="TRK"
-            kee="struts"
-            name="Struts"
-            private="[false]"/>
-  <snapshots id="10"
-             uuid="u10"
-             component_uuid="ABCD"
-             islast="[true]"/>
-
-  <projects organization_uuid="org1"
-            uuid="BCDE"
-            uuid_path="NOT_USED"
-            root_uuid="ABCD"
-            project_uuid="ABCD"
-            id="100"
-            scope="FIL"
-            qualifier="CLA"
-            kee="struts:Action"
-            name="Action"
-            private="[false]"/>
-  <snapshots id="100"
-             uuid="u100"
-             component_uuid="BCDE"
-             islast="[true]"/>
-</dataset>
diff --git a/server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_update_issues-result.xml b/server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_update_issues-result.xml
deleted file mode 100644 (file)
index 3c0d6b1..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<dataset>
-  <issues id="1"
-          kee="ABCDE"
-          resolution="FIXED"
-          status="RESOLVED"
-          severity="BLOCKER"
-          manual_severity="[false]"
-          assignee="loic"
-          author_login="simon"
-          checksum="FFFFF"
-          gap="[null]"
-          effort="10"
-          message="[null]"
-          line="5000"
-          component_uuid="BCDE"
-          project_uuid="CDEF"
-          rule_id="200"
-          created_at="1000000000"
-          updated_at="2000000000"
-          reporter="[null]"
-          issue_attributes="foo=bar"
-          tags="[null]"
-          action_plan_key="[null]"
-          issue_creation_date="1368878400000"
-          issue_update_date="1368878400000"
-          issue_close_date="1368878400000"
-          locations="[null]"
-          issue_type="2"
-  />
-
-  <issue_changes id="1"
-                 kee="FGHIJ"
-                 issue_key="ABCDE"
-                 change_type="comment"
-                 user_login="user_uuid"
-                 change_data="the comment"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 issue_change_creation_date="[null]"/>
-  <issue_changes id="2"
-                 kee="[null]"
-                 issue_key="ABCDE"
-                 change_type="diff"
-                 user_login="user_uuid"
-                 change_data="severity=INFO|BLOCKER"
-                 created_at="[null]"
-                 updated_at="[null]"
-                 issue_change_creation_date="[null]"/>
-</dataset>
diff --git a/server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_update_issues.xml b/server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_update_issues.xml
deleted file mode 100644 (file)
index 879f797..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<dataset>
-
-  <organizations uuid="org1"
-                 kee="org1_key"
-                 name="org1_name"
-                 guarded="[false]"
-                 new_project_private="[false]"
-                 default_quality_gate_uuid="DEFAULT_QG"
-                 created_at="1000"
-                 updated_at="2000"/>
-
-  <projects organization_uuid="org1"
-            uuid="ABCD"
-            uuid_path="NOT_USED"
-            root_uuid="ABCD"
-            project_uuid="ABCD"
-            id="10"
-            scope="PRJ"
-            qualifier="TRK"
-            kee="struts"
-            name="Struts"
-            private="[false]"/>
-  <snapshots id="10"
-             uuid="u10"
-             component_uuid="ABCD"
-             islast="[true]"/>
-
-  <projects organization_uuid="org1"
-            uuid="BCDE"
-            uuid_path="NOT_USED"
-            root_uuid="ABCD"
-            project_uuid="ABCD"
-            id="100"
-            scope="FIL"
-            qualifier="CLA"
-            kee="struts:Action"
-            name="Action"
-            private="[false]"/>
-  <snapshots id="100"
-             uuid="u100"
-             component_uuid="BCDE"
-             islast="[true]"/>
-
-  <issues id="1"
-          kee="ABCDE"
-          resolution="OPEN"
-          status="OPEN"
-          severity="BLOCKER"
-          manual_severity="[false]"
-          assignee="loic"
-          author_login="simon"
-          checksum="FFFFF"
-          gap="[null]"
-          effort="[null]"
-          message="[null]"
-          line="3000"
-          component_uuid="BCDE"
-          project_uuid="ABCD"
-          rule_id="200"
-          created_at="1000000000"
-          updated_at="1000000000"
-          reporter="[null]"
-          issue_attributes="foo=bar"
-          action_plan_key="[null]"
-          issue_creation_date="1262300400000"
-          issue_update_date="1265065200000"
-          issue_close_date="[null]"
-          locations="[null]"
-          issue_type="[null]"
-  />
-</dataset>