]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-19558 Refactor rest of test in webapi module
authorBenjamin Campomenosi <benjamin.campomenosi@sonarsource.com>
Fri, 30 Jun 2023 09:24:52 +0000 (11:24 +0200)
committersonartech <sonartech@sonarsource.com>
Mon, 3 Jul 2023 20:03:13 +0000 (20:03 +0000)
75 files changed:
server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/ComponentDbTester.java
server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/PortfolioData.java
server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/ProjectData.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/ce/projectdump/ExportSubmitterImplIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/ce/queue/BranchReportSubmitterIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/ce/queue/CeQueueCleanerIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/ce/ws/ActivityActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/ce/ws/ActivityStatusActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/ce/ws/ComponentActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/ce/ws/DismissAnalysisWarningActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/ce/ws/IndexationStatusActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/ce/ws/TaskActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/hotspot/ws/ShowActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/issue/ws/pull/PullTaintActionResponseWriterIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/measure/ws/SearchActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/permission/DefaultTemplatesResolverImplIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/permission/GroupPermissionChangerIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/permission/UserPermissionChangerIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/plugins/ws/InstalledActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/project/ws/SearchActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/project/ws/UpdateKeyActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/projectanalysis/ws/DeleteEventActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/projectanalysis/ws/UpdateEventActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/projectdump/ws/StatusActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/projectlink/ws/CreateActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualitygate/ws/RenameActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/QProfileBackuperImplIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/QProfileCopierIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/QProfileExportersIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/QProfileFactoryImplIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/QProfileRuleImplIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/QProfileTreeImplIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/RegisterQualityProfilesIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/RegisterQualityProfilesNotificationIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/ws/ChangeParentActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/ws/ChangelogActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/ws/DeleteActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/ws/ExportActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/ws/RenameActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/ws/SearchActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/RuleCreatorIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/RuleUpdaterIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/ws/AppActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/ws/CreateActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/ws/ListActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/ws/RepositoriesActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/ws/RuleQueryFactoryIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/ws/SearchActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/setting/ws/GenerateSecretKeyActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/setting/ws/ListDefinitionsActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/setting/ws/ResetActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/setting/ws/SetActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/setting/ws/SettingsUpdaterIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/setting/ws/ValuesActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/source/ws/IssueSnippetsActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/source/ws/RawActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/ui/ws/ComponentActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/user/ws/AnonymizeActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/user/ws/CreateActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/user/ws/DeactivateActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/user/ws/DismissNoticeActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/user/ws/UpdateActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/user/ws/UpdateLoginActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/user/ws/UserAnonymizerIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/usergroups/ws/CreateActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/usergroups/ws/ExternalGroupServiceIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/usergroups/ws/SearchActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/usergroups/ws/UpdateActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/usergroups/ws/UsersActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/usertoken/ws/GenerateActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/usertoken/ws/RevokeActionIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/usertoken/ws/SearchActionIT.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/ActivityAction.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/project/ws/SearchAction.java
server/sonar-webserver-webapi/src/test/java/org/sonar/server/ce/ws/TaskFormatterTest.java

index 277cacdc8203b92651f6ea74fe37ca923ee231a6..1d3de422b567495bc2ed0e4870f4101ed68337a4 100644 (file)
@@ -235,6 +235,12 @@ public class ComponentDbTester {
     return new PortfolioData(portfolioDto, component);
   }
 
+  public final PortfolioData insertPrivatePortfolioData(Consumer<ComponentDto> dtoPopulator) {
+    ComponentDto component = insertComponentAndPortfolio(ComponentTesting.newPortfolio().setPrivate(true), true, dtoPopulator, defaults());
+    PortfolioDto portfolioDto = getPortfolioDto(component);
+    return new PortfolioData(portfolioDto, component);
+  }
+
   public final PortfolioDto insertPrivatePortfolioDto(Consumer<ComponentDto> dtoPopulator) {
     ComponentDto component = insertComponentAndPortfolio(ComponentTesting.newPortfolio().setPrivate(true), true, dtoPopulator, defaults());
     return getPortfolioDto(component);
index 9838f01c9f0846460a8586daee1f98426524c04d..a76d4ba6adc5d6cae45e7818214aa9afc9f137a7 100644 (file)
@@ -39,4 +39,11 @@ public class PortfolioData {
     return portfolioDto;
   }
 
+  public String portfolioUuid(){
+    return portfolioDto.getUuid();
+  }
+
+  public String rootComponentUuid(){
+    return rootComponent.uuid();
+  }
 }
index 33c870a61b0817e26b51ea17c70b30c231a8e100..80392f266b0a14a44e18a941a2262bce8de41255 100644 (file)
@@ -51,4 +51,9 @@ public class ProjectData {
   public String projectKey() {
     return projectDto.getKey();
   }
+
+  public String mainBranchUuid(){
+    return mainBranchDto.getUuid();
+  }
+
 }
index 1fca898ea2df42de1fa1f415d7ad0a2bff3d2bf1..77af733c9c9858a8b18252dd48abde1b3f4c48a5 100644 (file)
@@ -29,6 +29,7 @@ import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.db.ce.CeQueueDto;
 import org.sonar.db.component.ComponentDto;
+import org.sonar.db.project.ProjectDto;
 import org.sonar.server.platform.NodeInformation;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -42,7 +43,7 @@ public class ExportSubmitterImplIT {
 
   private final System2 system2 = System2.INSTANCE;
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
 
   private final DbClient dbClient = db.getDbClient();
   private final CeQueue ceQueue = new CeQueueImpl(system2, db.getDbClient(), UuidFactoryFast.getInstance(), mock(NodeInformation.class));
@@ -65,24 +66,24 @@ public class ExportSubmitterImplIT {
 
   @Test
   public void submitProjectExport_submits_task_with_project_uuid_and_submitterLogin_if_present() {
-    ComponentDto projectDto = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectDto projectDto = db.components().insertPrivateProject().getProjectDto();
 
     underTest.submitProjectExport(projectDto.getKey(), SOME_SUBMITTER_UUID);
 
     assertThat(dbClient.ceQueueDao().selectAllInAscOrder(db.getSession()))
       .extracting(CeQueueDto::getComponentUuid, CeQueueDto::getTaskType, CeQueueDto::getSubmitterUuid)
-      .containsExactlyInAnyOrder(tuple(projectDto.uuid(), "PROJECT_EXPORT", SOME_SUBMITTER_UUID));
+      .containsExactlyInAnyOrder(tuple(projectDto.getUuid(), "PROJECT_EXPORT", SOME_SUBMITTER_UUID));
   }
 
   @Test
   public void submitProjectExport_submits_task_with_project_uuid_and_no_submitterLogin_if_null() {
-    ComponentDto projectDto = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectDto projectDto = db.components().insertPrivateProject().getProjectDto();
 
     underTest.submitProjectExport(projectDto.getKey(), null);
 
     assertThat(dbClient.ceQueueDao().selectAllInAscOrder(db.getSession()))
       .extracting(CeQueueDto::getComponentUuid, CeQueueDto::getTaskType, CeQueueDto::getSubmitterUuid)
-      .containsExactlyInAnyOrder(tuple(projectDto.uuid(), "PROJECT_EXPORT", null));
+      .containsExactlyInAnyOrder(tuple(projectDto.getUuid(), "PROJECT_EXPORT", null));
   }
 
 }
index 41626448af144e50dd469ca36de4fdc4e4647884..24358548f74bc94b92f1135939104613be838a48 100644 (file)
@@ -85,7 +85,7 @@ public class BranchReportSubmitterIT {
   @Rule
   public final UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public final DbTester db = DbTester.create(System2.INSTANCE);
+  public final DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final ProjectDefaultVisibility projectDefaultVisibility = mock(ProjectDefaultVisibility.class);
 
index e033365e74a95a24ddea67fa8d6041e79a1285a7..15a207a14c17f249df57f0df88efdb1a1861f5c3 100644 (file)
@@ -43,7 +43,7 @@ import static org.mockito.Mockito.when;
 public class CeQueueCleanerIT {
 
   @Rule
-  public final DbTester dbTester = DbTester.create(System2.INSTANCE);
+  public final DbTester dbTester = DbTester.create(System2.INSTANCE, true);
 
   private final ServerUpgradeStatus serverUpgradeStatus = mock(ServerUpgradeStatus.class);
   private final CeQueue queue = mock(CeQueue.class);
index d75a0e76b2657a31549e945b04ee27dc8a71a25b..6f5061df6c788b6fd572705628c9bdee97b2ce74 100644 (file)
@@ -39,9 +39,14 @@ import org.sonar.db.ce.CeTaskCharacteristicDto;
 import org.sonar.db.ce.CeTaskMessageDto;
 import org.sonar.db.ce.CeTaskMessageType;
 import org.sonar.db.ce.CeTaskTypes;
+import org.sonar.db.component.BranchDto;
 import org.sonar.db.component.BranchType;
 import org.sonar.db.component.ComponentDto;
+import org.sonar.db.component.PortfolioData;
+import org.sonar.db.component.ProjectData;
 import org.sonar.db.component.SnapshotDto;
+import org.sonar.db.portfolio.PortfolioDto;
+import org.sonar.db.project.ProjectDto;
 import org.sonar.server.exceptions.BadRequestException;
 import org.sonar.server.exceptions.ForbiddenException;
 import org.sonar.server.exceptions.NotFoundException;
@@ -88,7 +93,7 @@ public class ActivityActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final TaskFormatter formatter = new TaskFormatter(db.getDbClient(), System2.INSTANCE);
   private final ActivityAction underTest = new ActivityAction(userSession, db.getDbClient(), formatter, new CeTaskProcessor[] {mock(CeTaskProcessor.class)});
@@ -97,11 +102,11 @@ public class ActivityActionIT {
   @Test
   public void get_all_past_activity() {
     logInAsSystemAdministrator();
-    ComponentDto project1 = db.components().insertPrivateProject().getMainBranchComponent();
-    ComponentDto project2 = db.components().insertPrivateProject().getMainBranchComponent();
-    SnapshotDto analysisProject1 = db.components().insertSnapshot(project1);
-    insertActivity("T1", project1, SUCCESS, analysisProject1);
-    insertActivity("T2", project2, FAILED, null);
+    ProjectData project1 = db.components().insertPrivateProject();
+    ProjectData project2 = db.components().insertPrivateProject();
+    SnapshotDto analysisProject1 = db.components().insertSnapshot(project1.getMainBranchDto());
+    insertActivity("T1", project1.projectUuid(), project1.mainBranchUuid(), SUCCESS, analysisProject1);
+    insertActivity("T2", project2.projectUuid(), project2.mainBranchUuid(), FAILED, null);
 
     ActivityResponse activityResponse = call(ws.newRequest()
       .setParam(PARAM_MAX_EXECUTED_AT, formatDateTime(EXECUTED_AT + 2_000)));
@@ -112,7 +117,7 @@ public class ActivityActionIT {
     assertThat(task.getId()).isEqualTo("T2");
     assertThat(task.getStatus()).isEqualTo(Ce.TaskStatus.FAILED);
     assertThat(task.getNodeName()).isEqualTo(NODE_NAME);
-    assertThat(task.getComponentId()).isEqualTo(project2.uuid());
+    assertThat(task.getComponentId()).isEqualTo(project2.getMainBranchComponent().uuid());
     assertThat(task.hasAnalysisId()).isFalse();
     assertThat(task.getExecutionTimeMs()).isEqualTo(500L);
     assertThat(task.getWarningCount()).isZero();
@@ -121,15 +126,15 @@ public class ActivityActionIT {
     assertThat(task.getId()).isEqualTo("T1");
     assertThat(task.getNodeName()).isEqualTo(NODE_NAME);
     assertThat(task.getStatus()).isEqualTo(Ce.TaskStatus.SUCCESS);
-    assertThat(task.getComponentId()).isEqualTo(project1.uuid());
+    assertThat(task.getComponentId()).isEqualTo(project1.getMainBranchComponent().uuid());
     assertThat(task.getWarningCount()).isZero();
   }
 
   @Test
   public void filter_by_status() {
     logInAsSystemAdministrator();
-    ComponentDto project1 = db.components().insertPrivateProject().getMainBranchComponent();
-    ComponentDto project2 = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project1 = db.components().insertPrivateProject();
+    ProjectData project2 = db.components().insertPrivateProject();
     insertActivity("T1", project1, SUCCESS);
     insertActivity("T2", project2, FAILED);
     insertQueue("T3", project1, IN_PROGRESS);
@@ -145,8 +150,8 @@ public class ActivityActionIT {
   @Test
   public void filter_by_max_executed_at_exclude() {
     logInAsSystemAdministrator();
-    ComponentDto project1 = db.components().insertPrivateProject().getMainBranchComponent();
-    ComponentDto project2 = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project1 = db.components().insertPrivateProject();
+    ProjectData project2 = db.components().insertPrivateProject();
     insertActivity("T1", project1, SUCCESS);
     insertActivity("T2", project2, FAILED);
     insertQueue("T3", project1, IN_PROGRESS);
@@ -161,7 +166,7 @@ public class ActivityActionIT {
   @Test
   public void filter_by_min_submitted_and_max_executed_at_include_day() {
     logInAsSystemAdministrator();
-    ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project = db.components().insertPrivateProject();
     insertActivity("T1", project, SUCCESS);
     String today = formatDate(new Date(EXECUTED_AT));
 
@@ -175,7 +180,7 @@ public class ActivityActionIT {
   @Test
   public void filter_on_current_activities() {
     logInAsSystemAdministrator();
-    ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project = db.components().insertPrivateProject();
     // T2 is the current activity (the most recent one)
     insertActivity("T1", project, SUCCESS);
     insertActivity("T2", project, FAILED);
@@ -203,8 +208,8 @@ public class ActivityActionIT {
   @Test
   public void limit_results() {
     logInAsSystemAdministrator();
-    ComponentDto project1 = db.components().insertPrivateProject().getMainBranchComponent();
-    ComponentDto project2 = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project1 = db.components().insertPrivateProject();
+    ProjectData project2 = db.components().insertPrivateProject();
     insertActivity("T1", project1, SUCCESS);
     insertActivity("T2", project2, FAILED);
     insertQueue("T3", project1, IN_PROGRESS);
@@ -225,7 +230,7 @@ public class ActivityActionIT {
   @Test
   public void remove_queued_already_completed() {
     logInAsSystemAdministrator();
-    ComponentDto project1 = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project1 = db.components().insertPrivateProject();
 
     insertActivity("T1", project1, SUCCESS);
     insertQueue("T1", project1, IN_PROGRESS);
@@ -243,8 +248,8 @@ public class ActivityActionIT {
   @Test
   public void return_warnings_count_on_queue_and_activity_and_warnings_list() {
     logInAsSystemAdministrator();
-    ComponentDto project1 = db.components().insertPrivateProject().getMainBranchComponent();
-    ComponentDto project2 = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project1 = db.components().insertPrivateProject();
+    ProjectData project2 = db.components().insertPrivateProject();
     insertActivity("T1", project1, SUCCESS);
     insertActivity("T2", project2, FAILED);
     insertQueue("T3", project1, IN_PROGRESS);
@@ -277,27 +282,27 @@ public class ActivityActionIT {
 
   @Test
   public void project_administrator_can_access_his_project_activity_using_component_key() {
-    ComponentDto project1 = db.components().insertPrivateProject().getMainBranchComponent();
-    ComponentDto project2 = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project1 = db.components().insertPrivateProject();
+    ProjectData project2 = db.components().insertPrivateProject();
     // no need to be a system admin
-    userSession.logIn().addProjectPermission(UserRole.ADMIN, project1);
+    userSession.logIn().addProjectPermission(UserRole.ADMIN, project1.getProjectDto());
     insertActivity("T1", project1, SUCCESS);
     insertActivity("T2", project2, FAILED);
 
-    ActivityResponse activityResponse = call(ws.newRequest().setParam("component", project1.getKey()));
+    ActivityResponse activityResponse = call(ws.newRequest().setParam("component", project1.projectKey()));
 
     assertThat(activityResponse.getTasksCount()).isOne();
     assertThat(activityResponse.getTasks(0).getId()).isEqualTo("T1");
     assertThat(activityResponse.getTasks(0).getStatus()).isEqualTo(Ce.TaskStatus.SUCCESS);
-    assertThat(activityResponse.getTasks(0).getComponentId()).isEqualTo(project1.uuid());
+    assertThat(activityResponse.getTasks(0).getComponentId()).isEqualTo(project1.getMainBranchComponent().uuid());
   }
 
   @Test
   public void return_401_if_user_is_not_logged_in() {
-    ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project = db.components().insertPrivateProject();
     userSession.anonymous();
 
-    TestRequest request = ws.newRequest().setParam("componentId", project.uuid());
+    TestRequest request = ws.newRequest().setParam("componentId", project.projectUuid());
     assertThatThrownBy(() -> call(request))
       .isInstanceOf(UnauthorizedException.class)
       .hasMessage("Authentication is required");
@@ -305,12 +310,12 @@ public class ActivityActionIT {
 
   @Test
   public void search_activity_by_component_name() {
-    ComponentDto struts = db.components().insertPrivateProject(c -> c.setName("old apache struts")).getMainBranchComponent();
-    ComponentDto zookeeper = db.components().insertPrivateProject(c -> c.setName("new apache zookeeper")).getMainBranchComponent();
-    ComponentDto eclipse = db.components().insertPrivateProject(c -> c.setName("eclipse")).getMainBranchComponent();
-    db.components().insertSnapshot(struts);
-    db.components().insertSnapshot(zookeeper);
-    db.components().insertSnapshot(eclipse);
+    ProjectData struts = db.components().insertPrivateProject(c -> c.setName("old apache struts"));
+    ProjectData zookeeper = db.components().insertPrivateProject(c -> c.setName("new apache zookeeper"));
+    ProjectData eclipse = db.components().insertPrivateProject(c -> c.setName("eclipse"));
+    db.components().insertSnapshot(struts.getMainBranchDto());
+    db.components().insertSnapshot(zookeeper.getMainBranchDto());
+    db.components().insertSnapshot(eclipse.getMainBranchDto());
     logInAsSystemAdministrator();
     insertActivity("T1", struts, SUCCESS);
     insertActivity("T2", zookeeper, SUCCESS);
@@ -323,8 +328,8 @@ public class ActivityActionIT {
 
   @Test
   public void search_activity_returns_views() {
-    ComponentDto apacheView = db.components().insertPrivatePortfolio(v -> v.setName("Apache View"));
-    db.components().insertSnapshot(apacheView);
+    PortfolioData apacheView = db.components().insertPrivatePortfolioData(v -> v.setName("Apache View"));
+    db.components().insertSnapshot(apacheView.getPortfolioDto());
     logInAsSystemAdministrator();
     insertActivity("T2", apacheView, SUCCESS);
 
@@ -335,8 +340,8 @@ public class ActivityActionIT {
 
   @Test
   public void search_activity_returns_application() {
-    ComponentDto apacheApp = db.components().insertPublicApplication(a -> a.setName("Apache App")).getMainBranchComponent();
-    db.components().insertSnapshot(apacheApp);
+    ProjectData apacheApp = db.components().insertPublicApplication(a -> a.setName("Apache App"));
+    db.components().insertSnapshot(apacheApp.getMainBranchDto());
     logInAsSystemAdministrator();
     insertActivity("T2", apacheApp, SUCCESS);
 
@@ -348,7 +353,7 @@ public class ActivityActionIT {
   @Test
   public void search_task_id_in_queue_ignoring_other_parameters() {
     logInAsSystemAdministrator();
-    ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project = db.components().insertPrivateProject();
     insertQueue("T1", project, IN_PROGRESS);
 
     ActivityResponse result = call(
@@ -363,7 +368,7 @@ public class ActivityActionIT {
   @Test
   public void search_task_id_in_activity() {
     logInAsSystemAdministrator();
-    ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project = db.components().insertPrivateProject();
     insertActivity("T1", project, SUCCESS);
 
     ActivityResponse result = call(ws.newRequest().setParam(Param.TEXT_QUERY, "T1"));
@@ -377,9 +382,9 @@ public class ActivityActionIT {
     // WS api/ce/task must be used in order to search by task id.
     // Here it's a convenient feature of search by text query, which
     // is reserved to roots
-    ComponentDto view = db.components().insertPrivatePortfolio();
+    PortfolioData view = db.components().insertPrivatePortfolioData();
     insertActivity("T1", view, SUCCESS);
-    userSession.logIn().addProjectPermission(UserRole.ADMIN, view);
+    userSession.logIn().addProjectPermission(UserRole.ADMIN, view.getRootComponent());
 
     TestRequest request = ws.newRequest().setParam(TEXT_QUERY, "T1");
     assertThatThrownBy(() -> call(request))
@@ -390,12 +395,12 @@ public class ActivityActionIT {
   @Test
   public void branch_in_past_activity() {
     logInAsSystemAdministrator();
-    ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
-    userSession.addProjectPermission(UserRole.USER, project);
+    ProjectData project = db.components().insertPrivateProject();
+    userSession.addProjectPermission(UserRole.USER, project.getProjectDto());
     String branchName = "branch1";
-    ComponentDto branch = db.components().insertProjectBranch(project, b -> b.setBranchType(BRANCH).setKey(branchName));
+    BranchDto branch = db.components().insertProjectBranch(project.getProjectDto(), b -> b.setBranchType(BRANCH).setKey(branchName));
     SnapshotDto analysis = db.components().insertSnapshot(branch);
-    CeActivityDto activity = insertActivity("T1", project, SUCCESS, analysis);
+    CeActivityDto activity = insertActivity("T1", project.projectUuid(), project.mainBranchUuid(), SUCCESS, analysis);
     insertCharacteristic(activity, BRANCH_KEY, branchName);
     insertCharacteristic(activity, BRANCH_TYPE_KEY, BRANCH.name());
 
@@ -432,12 +437,12 @@ public class ActivityActionIT {
   @Test
   public void pull_request_in_past_activity() {
     logInAsSystemAdministrator();
-    ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
-    userSession.addProjectPermission(UserRole.USER, project);
+    ProjectData project = db.components().insertPrivateProject();
+    userSession.addProjectPermission(UserRole.USER, project.getProjectDto());
     String pullRequestKey = RandomStringUtils.randomAlphanumeric(100);
-    ComponentDto pullRequest = db.components().insertProjectBranch(project, b -> b.setBranchType(BranchType.PULL_REQUEST).setKey(pullRequestKey));
+    BranchDto pullRequest = db.components().insertProjectBranch(project.getProjectDto(), b -> b.setBranchType(BranchType.PULL_REQUEST).setKey(pullRequestKey));
     SnapshotDto analysis = db.components().insertSnapshot(pullRequest);
-    CeActivityDto activity = insertActivity("T1", project, SUCCESS, analysis);
+    CeActivityDto activity = insertActivity("T1", project.projectUuid(), project.getMainBranchComponent().uuid(), SUCCESS, analysis);
     insertCharacteristic(activity, PULL_REQUEST, pullRequestKey);
 
     ActivityResponse response = ws.newRequest().executeProtobuf(ActivityResponse.class);
@@ -531,7 +536,7 @@ public class ActivityActionIT {
   @Test
   public void throws_IAE_if_page_is_higher_than_available() {
     logInAsSystemAdministrator();
-    ComponentDto project1 = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project1 = db.components().insertPrivateProject();
 
     insertActivity("T1", project1, SUCCESS);
     insertActivity("T2", project1, SUCCESS);
@@ -585,9 +590,9 @@ public class ActivityActionIT {
   @Test
   public void filter_out_duplicate_tasks_in_progress_and_success() {
     logInAsSystemAdministrator();
-    ComponentDto project1 = db.components().insertPrivateProject().getMainBranchComponent();
-    ComponentDto project2 = db.components().insertPrivateProject().getMainBranchComponent();
-    ComponentDto project3 = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectData project1 = db.components().insertPrivateProject();
+    ProjectData project2 = db.components().insertPrivateProject();
+    ProjectData project3 = db.components().insertPrivateProject();
     insertQueue("T2", project2, IN_PROGRESS);
     insertQueue("T3", project3, IN_PROGRESS);
     insertActivity("T1", project1, SUCCESS);
@@ -604,12 +609,12 @@ public class ActivityActionIT {
     userSession.logIn().setSystemAdministrator();
   }
 
-  private CeQueueDto insertQueue(String taskUuid, @Nullable ComponentDto project, CeQueueDto.Status status) {
+  private CeQueueDto insertQueue(String taskUuid, @Nullable ProjectData project, CeQueueDto.Status status) {
     CeQueueDto queueDto = new CeQueueDto();
     queueDto.setTaskType(CeTaskTypes.REPORT);
-    if (project != null ) {
-      queueDto.setComponentUuid(project.uuid());
-      queueDto.setEntityUuid(project.uuid());
+    if (project != null) {
+      queueDto.setComponentUuid(project.mainBranchUuid());
+      queueDto.setEntityUuid(project.projectUuid());
     }
     queueDto.setUuid(taskUuid);
     queueDto.setStatus(status);
@@ -618,15 +623,19 @@ public class ActivityActionIT {
     return queueDto;
   }
 
-  private CeActivityDto insertActivity(String taskUuid, ComponentDto project, Status status) {
-    return insertActivity(taskUuid, project, status, db.components().insertSnapshot(project));
+  private CeActivityDto insertActivity(String taskUuid, ProjectData project, Status status) {
+    return insertActivity(taskUuid, project.projectUuid(), project.mainBranchUuid(), status, db.components().insertSnapshot(project.getMainBranchDto()));
   }
 
-  private CeActivityDto insertActivity(String taskUuid, ComponentDto project, Status status, @Nullable SnapshotDto analysis) {
+  private CeActivityDto insertActivity(String taskUuid, PortfolioData portfolio, Status status) {
+    return insertActivity(taskUuid, portfolio.portfolioUuid(), portfolio.rootComponentUuid(), status, db.components().insertSnapshot(portfolio.getPortfolioDto()));
+  }
+
+  private CeActivityDto insertActivity(String taskUuid, String entityUuid, String rootCompomentUuid, Status status, @Nullable SnapshotDto analysis) {
     CeQueueDto queueDto = new CeQueueDto();
     queueDto.setTaskType(CeTaskTypes.REPORT);
-    queueDto.setComponentUuid(project.uuid());
-    queueDto.setEntityUuid(project.uuid());
+    queueDto.setComponentUuid(rootCompomentUuid);
+    queueDto.setEntityUuid(entityUuid);
     queueDto.setUuid(taskUuid);
     queueDto.setCreatedAt(EXECUTED_AT);
     CeActivityDto activityDto = new CeActivityDto(queueDto);
index 8e7d053d05e4c126c8cc4f5c44bdb48550b1c579..ca9f15cb5e59dc28e33269f4bd3c2c3a662302e4 100644 (file)
@@ -54,7 +54,7 @@ public class ActivityStatusActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone().logIn().setSystemAdministrator();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final System2 system2 = mock(System2.class);
   private final DbClient dbClient = db.getDbClient();
index 219ad666f72e67223c8d44d3badf5df0b4566923..abe94b0d7b8d6448a3ee103265baad572530c409 100644 (file)
@@ -65,7 +65,7 @@ public class ComponentActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final TaskFormatter formatter = new TaskFormatter(db.getDbClient(), System2.INSTANCE);
   private final ComponentAction underTest = new ComponentAction(userSession, db.getDbClient(), formatter, TestComponentFinder.from(db));
index e63ce21cfa7c7ac94f29369343d137455a2cb1ec..095700101667284b8dcdcc7437cecbfea5fd6586 100644 (file)
@@ -55,7 +55,7 @@ public class DismissAnalysisWarningActionIT {
   public UserSessionRule userSession = UserSessionRule.standalone();
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private static int counter = 1;
 
index 71a39a57f74223f7db25274af935935ab609f805..d0934f5a498f952f4bbc4f17348d0eea6cd904ab 100644 (file)
@@ -46,7 +46,7 @@ public class IndexationStatusActionIT {
   public IssueIndexSyncProgressChecker issueIndexSyncProgressCheckerMock = mock(IssueIndexSyncProgressChecker.class);
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private WsActionTester ws = new WsActionTester(new IndexationStatusAction(db.getDbClient(), issueIndexSyncProgressCheckerMock));
 
index 425e40f5ceb48bbca40911dccc685a0c40786110..558b90a4447a10c1e2c242dccbf552b6e630535a 100644 (file)
@@ -69,7 +69,7 @@ public class TaskActionIT {
   public final UserSessionRule userSession = UserSessionRule.standalone();
 
   @Rule
-  public final DbTester db = DbTester.create(System2.INSTANCE);
+  public final DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final TaskFormatter formatter = new TaskFormatter(db.getDbClient(), System2.INSTANCE);
   private final TaskAction underTest = new TaskAction(db.getDbClient(), formatter, userSession);
index 23829c2657496e0e3ec1258d8ccc36c8419e27dc..433a3298d24c03f0c17ece70227cecdafc6742c0 100644 (file)
@@ -116,7 +116,7 @@ public class ShowActionIT {
   public static final DbIssues.MessageFormatting MESSAGE_FORMATTING = DbIssues.MessageFormatting.newBuilder().setStart(0).setEnd(4).setType(CODE).build();
 
   @Rule
-  public DbTester dbTester = DbTester.create(System2.INSTANCE);
+  public DbTester dbTester = DbTester.create(System2.INSTANCE, true);
   @Rule
   public EsTester es = EsTester.create();
   @Rule
index a2e3c3eb873c108ba5b08270620447ce6866c98e..c5798d37fcda7e705fa4984ebc1d23023c2aaacc 100644 (file)
@@ -43,7 +43,7 @@ import static org.mockito.Mockito.when;
 
 public class PullTaintActionResponseWriterIT {
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
index 67e48d03ee0992c93627fa545d3f1762bae6b2b2..97adb87a4cc84b9f7d7206f4d53b5716b14fa19b 100644 (file)
@@ -62,7 +62,7 @@ public class SearchActionIT {
   public UserSessionRule userSession = UserSessionRule.standalone().logIn();
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final WsActionTester ws = new WsActionTester(new SearchAction(userSession, db.getDbClient()));
 
index bf79fd1072140a5b6c6c6352a45732de985858d1..cc43b17e34babc1a720adc0ab9d564c03de2edc8 100644 (file)
@@ -35,7 +35,7 @@ import static org.sonar.api.resources.Qualifiers.VIEW;
 public class DefaultTemplatesResolverImplIT {
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private ResourceTypesRule resourceTypesWithPortfoliosInstalled = new ResourceTypesRule().setRootQualifiers(PROJECT, APP, VIEW);
   private ResourceTypesRule resourceTypesWithApplicationInstalled = new ResourceTypesRule().setRootQualifiers(PROJECT, APP);
index f192a7ee6796687f04d8eb9e349dc5573c60f141..bca394ab9e4e609d2ef8f12938d03488aec14e99 100644 (file)
@@ -49,7 +49,7 @@ import static org.sonar.db.permission.GlobalPermission.PROVISION_PROJECTS;
 public class GroupPermissionChangerIT {
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final ResourceTypes resourceTypes = new ResourceTypesRule().setRootQualifiers(Qualifiers.PROJECT);
   private final PermissionService permissionService = new PermissionServiceImpl(resourceTypes);
index d14cfee992b4747b106f2d9d9bed1db09142fd6b..d644e9a1eece818965ddd98fc98f1bbdd4ffd551 100644 (file)
@@ -45,7 +45,7 @@ import static org.sonar.server.permission.PermissionChange.Operation.REMOVE;
 
 public class UserPermissionChangerIT {
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
 
   private final ResourceTypes resourceTypes = new ResourceTypesRule().setRootQualifiers(Qualifiers.PROJECT);
index c14fd46f10d898bb907e257956c2501b67871c6d..c8e057a0024bc31be3e3255dab1d304c958b2e38 100644 (file)
@@ -74,7 +74,7 @@ public class InstalledActionIT {
   @Rule
   public TemporaryFolder temp = new TemporaryFolder();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone().logIn();
 
index 14c69602047185d031d7a4d655d75c75f8f215d7..eac18e53acea8a22ca533f2511a1d5bd49bcb320 100644 (file)
@@ -33,7 +33,10 @@ import org.sonar.api.server.ws.WebService;
 import org.sonar.api.server.ws.WebService.Param;
 import org.sonar.api.utils.DateUtils;
 import org.sonar.db.DbTester;
+import org.sonar.db.component.BranchDto;
 import org.sonar.db.component.ComponentDto;
+import org.sonar.db.component.ProjectData;
+import org.sonar.db.project.ProjectDto;
 import org.sonar.server.exceptions.ForbiddenException;
 import org.sonar.server.tester.UserSessionRule;
 import org.sonar.server.ws.TestRequest;
@@ -77,7 +80,7 @@ public class SearchActionIT {
   public final UserSessionRule userSession = UserSessionRule.standalone();
 
   @Rule
-  public final DbTester db = DbTester.create();
+  public final DbTester db = DbTester.create(true);
 
   private final WsActionTester ws = new WsActionTester(new SearchAction(db.getDbClient(), userSession));
 
@@ -129,11 +132,11 @@ public class SearchActionIT {
   @Test
   public void search_projects() {
     userSession.addPermission(ADMINISTER);
-    ComponentDto project = db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_1)).getMainBranchComponent();
-    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_2)).getMainBranchComponent();
+    ProjectData project = db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_1));
+    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_2));
     db.components().insertPublicPortfolio();
 
-    ComponentDto directory = newDirectory(project, "dir");
+    ComponentDto directory = newDirectory(project.getMainBranchComponent(), "dir");
     ComponentDto file = newFileDto(directory);
     db.components().insertComponents(directory, file);
 
@@ -145,7 +148,7 @@ public class SearchActionIT {
   @Test
   public void search_views() {
     userSession.addPermission(ADMINISTER);
-    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_1)).getMainBranchComponent();
+    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_1));
     db.components().insertPublicPortfolio(p -> p.setKey("view1"));
 
     SearchWsResponse response = call(SearchRequest.builder().setQualifiers(singletonList("VW")).build());
@@ -156,7 +159,7 @@ public class SearchActionIT {
   @Test
   public void search_projects_and_views() {
     userSession.addPermission(ADMINISTER);
-    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_1)).getMainBranchComponent();
+    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_1));
     db.components().insertPublicPortfolio(p -> p.setKey("view1"));
 
     SearchWsResponse response = call(SearchRequest.builder().setQualifiers(asList("TRK", "VW")).build());
@@ -167,9 +170,9 @@ public class SearchActionIT {
   @Test
   public void search_all() {
     userSession.addPermission(ADMINISTER);
-    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_1)).getMainBranchComponent();
-    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_2)).getMainBranchComponent();
-    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_3)).getMainBranchComponent();
+    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_1));
+    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_2));
+    db.components().insertPrivateProject(p -> p.setKey(PROJECT_KEY_3));
     SearchWsResponse response = call(SearchRequest.builder().build());
 
     assertThat(response.getComponentsList()).extracting(Component::getKey).containsOnly(PROJECT_KEY_1, PROJECT_KEY_2, PROJECT_KEY_3);
@@ -182,22 +185,22 @@ public class SearchActionIT {
     long inBetween = 2_000_000_000L;
     long recentTime = 3_000_000_000L;
 
-    ComponentDto oldProject = db.components().insertPublicProject().getMainBranchComponent();
-    db.getDbClient().snapshotDao().insert(db.getSession(), newAnalysis(oldProject).setCreatedAt(aLongTimeAgo));
-    ComponentDto branch = db.components().insertProjectBranch(oldProject);
+    ProjectData oldProject = db.components().insertPublicProject();
+    db.getDbClient().snapshotDao().insert(db.getSession(), newAnalysis(oldProject.getMainBranchDto()).setCreatedAt(aLongTimeAgo));
+    BranchDto branch = db.components().insertProjectBranch(oldProject.getProjectDto());
     db.getDbClient().snapshotDao().insert(db.getSession(), newAnalysis(branch).setCreatedAt(inBetween));
 
-    ComponentDto recentProject = db.components().insertPublicProject().getMainBranchComponent();
-    db.getDbClient().snapshotDao().insert(db.getSession(), newAnalysis(recentProject).setCreatedAt(recentTime));
+    ProjectData recentProject = db.components().insertPublicProject();
+    db.getDbClient().snapshotDao().insert(db.getSession(), newAnalysis(recentProject.getMainBranchDto()).setCreatedAt(recentTime));
     db.commit();
 
     SearchWsResponse result = call(SearchRequest.builder().setAnalyzedBefore(toStringAtUTC(new Date(recentTime + 1_000))).build());
     assertThat(result.getComponentsList()).extracting(Component::getKey, Component::getLastAnalysisDate)
-      .containsExactlyInAnyOrder(tuple(oldProject.getKey(), formatDateTime(inBetween)), tuple(recentProject.getKey(), formatDateTime(recentTime)));
+      .containsExactlyInAnyOrder(tuple(oldProject.getProjectDto().getKey(), formatDateTime(inBetween)), tuple(recentProject.projectKey(), formatDateTime(recentTime)));
 
     result = call(SearchRequest.builder().setAnalyzedBefore(toStringAtUTC(new Date(recentTime))).build());
     assertThat(result.getComponentsList()).extracting(Component::getKey, Component::getLastAnalysisDate)
-      .containsExactlyInAnyOrder(tuple(oldProject.getKey(), formatDateTime(inBetween)));
+      .containsExactlyInAnyOrder(tuple(oldProject.getProjectDto().getKey(), formatDateTime(inBetween)));
 
     result = call(SearchRequest.builder().setAnalyzedBefore(toStringAtUTC(new Date(aLongTimeAgo + 1_000L))).build());
     assertThat(result.getComponentsList()).isEmpty();
@@ -210,8 +213,8 @@ public class SearchActionIT {
 
   @Test
   public void does_not_return_branches_when_searching_by_key() {
-    ComponentDto project = db.components().insertPublicProject().getMainBranchComponent();
-    ComponentDto branch = db.components().insertProjectBranch(project);
+    ProjectDto project = db.components().insertPublicProject().getProjectDto();
+    db.components().insertProjectBranch(project);
     userSession.addPermission(ADMINISTER);
 
     SearchWsResponse response = call(SearchRequest.builder().build());
@@ -222,10 +225,9 @@ public class SearchActionIT {
   @Test
   public void result_is_paginated() {
     userSession.addPermission(ADMINISTER);
-    List<ComponentDto> componentDtoList = new ArrayList<>();
     for (int i = 1; i <= 9; i++) {
       int j = i;
-      componentDtoList.add(db.components().insertPrivateProject("project-uuid-" + i, p -> p.setKey("project-key-" + j).setName("Project Name " + j)).getMainBranchComponent());
+      db.components().insertPrivateProject("project-uuid-" + i, p -> p.setKey("project-key-" + j).setName("Project Name " + j));
     }
 
     SearchWsResponse response = call(SearchRequest.builder().setPage(2).setPageSize(3).build());
@@ -235,23 +237,23 @@ public class SearchActionIT {
   @Test
   public void provisioned_projects() {
     userSession.addPermission(ADMINISTER);
-    ComponentDto provisionedProject = db.components().insertPrivateProject().getMainBranchComponent();
-    ComponentDto analyzedProject = db.components().insertPrivateProject().getMainBranchComponent();
-    db.components().insertSnapshot(newAnalysis(analyzedProject));
+    ProjectDto provisionedProject = db.components().insertPrivateProject().getProjectDto();
+    ProjectData analyzedProject = db.components().insertPrivateProject();
+    db.components().insertSnapshot(newAnalysis(analyzedProject.getMainBranchDto()));
 
     SearchWsResponse response = call(SearchRequest.builder().setOnProvisionedOnly(true).build());
 
     assertThat(response.getComponentsList()).extracting(Component::getKey)
       .containsExactlyInAnyOrder(provisionedProject.getKey())
-      .doesNotContain(analyzedProject.getKey());
+      .doesNotContain(analyzedProject.projectKey());
   }
 
   @Test
   public void search_by_component_keys() {
     userSession.addPermission(ADMINISTER);
-    ComponentDto jdk = db.components().insertPrivateProject().getMainBranchComponent();
-    ComponentDto sonarqube = db.components().insertPrivateProject().getMainBranchComponent();
-    ComponentDto sonarlint = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectDto jdk = db.components().insertPrivateProject().getProjectDto();
+    ProjectDto sonarqube = db.components().insertPrivateProject().getProjectDto();
+    ProjectDto sonarlint = db.components().insertPrivateProject().getProjectDto();
 
     SearchWsResponse result = call(SearchRequest.builder()
       .setProjects(Arrays.asList(jdk.getKey(), sonarqube.getKey()))
@@ -346,12 +348,12 @@ public class SearchActionIT {
   @Test
   public void json_example() {
     userSession.addPermission(ADMINISTER);
-    ComponentDto publicProject = db.components().insertPublicProject("project-uuid-1", p -> p.setName("Project Name 1").setKey("project-key-1").setPrivate(false)).getMainBranchComponent();
-    ComponentDto privateProject = db.components().insertPrivateProject("project-uuid-2", p -> p.setName("Project Name 1").setKey("project-key-2")).getMainBranchComponent();
-    db.getDbClient().snapshotDao().insert(db.getSession(), newAnalysis(publicProject)
+    ProjectData publicProject = db.components().insertPublicProject("project-uuid-1", p -> p.setName("Project Name 1").setKey("project-key-1").setPrivate(false));
+    ProjectData privateProject = db.components().insertPrivateProject("project-uuid-2", p -> p.setName("Project Name 1").setKey("project-key-2"));
+    db.getDbClient().snapshotDao().insert(db.getSession(), newAnalysis(publicProject.getMainBranchDto())
       .setCreatedAt(parseDateTime("2017-03-01T11:39:03+0300").getTime())
       .setRevision("cfb82f55c6ef32e61828c4cb3db2da12795fd767"));
-    db.getDbClient().snapshotDao().insert(db.getSession(), newAnalysis(privateProject)
+    db.getDbClient().snapshotDao().insert(db.getSession(), newAnalysis(privateProject.getMainBranchDto())
       .setCreatedAt(parseDateTime("2017-03-02T15:21:47+0300").getTime())
       .setRevision("7be96a94ac0c95a61ee6ee0ef9c6f808d386a355"));
     db.commit();
index 0a17167a8e05024556a1ba9392e9e4156b79abb4..31beb14a029cd34e7a35a7ec7feb5d8504f5d480 100644 (file)
@@ -50,7 +50,7 @@ public class UpdateKeyActionIT {
   private static final String ANOTHER_KEY = "another_key";
 
   @Rule
-  public final DbTester db = DbTester.create(System2.INSTANCE);
+  public final DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public final UserSessionRule userSessionRule = UserSessionRule.standalone();
   private final DbClient dbClient = db.getDbClient();
index d29a25e84c25278df9064d21219fc31ffe1959a1..40c2b63e63d91d91adc048a312d1c5a750343f93 100644 (file)
@@ -51,7 +51,7 @@ public class DeleteEventActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   private DbClient dbClient = db.getDbClient();
   private DbSession dbSession = db.getSession();
 
index 33e94ac67b502e72248d19db0d53ecd0d4a059bd..6ca29006c935557202823f47de975e18d01bd121 100644 (file)
@@ -57,7 +57,7 @@ public class UpdateEventActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final DbClient dbClient = db.getDbClient();
   private final DbSession dbSession = db.getSession();
index 27e43f5c6c87242473b00758ce9c29fb36283486..47a0438e45d253c79685dd68109c6b4cd8289318 100644 (file)
@@ -64,7 +64,7 @@ public class StatusActionIT {
   private static final String SOME_KEY = "some key";
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index 13542b317642cf3f32918e4029483896743fd679..8b6cc14a0483ae51eb1904764f08e0a3e197187d 100644 (file)
@@ -33,6 +33,7 @@ import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.ComponentTesting;
 import org.sonar.db.component.ProjectData;
 import org.sonar.db.component.ProjectLinkDto;
+import org.sonar.db.project.ProjectDto;
 import org.sonar.server.component.TestComponentFinder;
 import org.sonar.server.exceptions.ForbiddenException;
 import org.sonar.server.exceptions.NotFoundException;
@@ -54,7 +55,7 @@ public class CreateActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final DbClient dbClient = db.getDbClient();
   private final DbSession dbSession = db.getSession();
@@ -62,7 +63,7 @@ public class CreateActionIT {
 
   @Test
   public void example_with_key() {
-    ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectDto project = db.components().insertPrivateProject().getProjectDto();
     logInAsProjectAdministrator(project);
 
     String result = ws.newRequest()
@@ -77,12 +78,12 @@ public class CreateActionIT {
 
   @Test
   public void example_with_id() {
-    ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectDto project = db.components().insertPrivateProject().getProjectDto();
     logInAsProjectAdministrator(project);
 
     String result = ws.newRequest()
       .setMethod("POST")
-      .setParam(PARAM_PROJECT_ID, project.uuid())
+      .setParam(PARAM_PROJECT_ID, project.getUuid())
       .setParam(PARAM_NAME, "Custom")
       .setParam(PARAM_URL, "http://example.org")
       .execute().getInput();
@@ -92,7 +93,7 @@ public class CreateActionIT {
 
   @Test
   public void require_project_admin() {
-    ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectDto project = db.components().insertPrivateProject().getProjectDto();
     logInAsProjectAdministrator(project);
 
     createAndTest(project);
@@ -100,7 +101,7 @@ public class CreateActionIT {
 
   @Test
   public void with_long_name() {
-    ComponentDto project = db.components().insertPrivateProject().getMainBranchComponent();
+    ProjectDto project = db.components().insertPrivateProject().getProjectDto();
     logInAsProjectAdministrator(project);
     String longName = StringUtils.leftPad("", 60, "a");
     String expectedType = StringUtils.leftPad("", 20, "a");
@@ -259,7 +260,7 @@ public class CreateActionIT {
       .hasMessageContaining("Project '" + component.uuid() + "' not found");
   }
 
-  private void createAndTest(ComponentDto project, String name, String url, String type) {
+  private void createAndTest(ProjectDto project, String name, String url, String type) {
     ProjectLinks.CreateWsResponse response = ws.newRequest()
       .setMethod("POST")
       .setParam(PARAM_PROJECT_KEY, project.getKey())
@@ -275,11 +276,11 @@ public class CreateActionIT {
     assertThat(link.getType()).isEqualTo(type);
   }
 
-  private void createAndTest(ComponentDto project) {
+  private void createAndTest(ProjectDto project) {
     createAndTest(project, "Custom", "http://example.org", "custom");
   }
 
-  private void logInAsProjectAdministrator(ComponentDto project) {
+  private void logInAsProjectAdministrator(ProjectDto project) {
     userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
   }
 }
index 8a91ccf2a3a1c1a80366494096e9790e574d0c78..33ffb00da2c7d16981194b1e53110aa237485b5a 100644 (file)
@@ -46,7 +46,7 @@ public class RenameActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final WsActionTester ws = new WsActionTester(
     new RenameAction(db.getDbClient(), new QualityGatesWsSupport(db.getDbClient(), userSession, TestComponentFinder.from(db))));
index 04e750e75014439d1297dd709d2cf38cd78167ac..ab96c656525c3455b1ae866a306fc67d4ac0aad3 100644 (file)
@@ -70,7 +70,7 @@ public class QProfileBackuperImplIT {
   private final System2 system2 = new AlwaysIncreasingSystem2();
 
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
 
   private final DummyReset reset = new DummyReset();
   private final QProfileFactory profileFactory = new DummyProfileFactory();
index 7e31f55af42099c0b26cfe22d70dfc3e06fc9559..22d667f698776f7a8ceaa745e23e5da6ee2725aa 100644 (file)
@@ -46,7 +46,7 @@ public class QProfileCopierIT {
   private final System2 system2 = new AlwaysIncreasingSystem2();
 
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @Rule
   public JUnitTempFolder temp = new JUnitTempFolder();
 
index 8e9d98bc20cc9d66900213b1c26448391380d52e..6be9226578891f03a6ca4ed1b708fdaf06dd566c 100644 (file)
@@ -64,7 +64,7 @@ public class QProfileExportersIT {
   private final System2 system2 = new AlwaysIncreasingSystem2();
 
   @org.junit.Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
 
   private final RuleFinder ruleFinder = new DefaultRuleFinder(db.getDbClient(), mock(RuleDescriptionFormatter.class));
   private final ProfileExporter[] exporters = new ProfileExporter[] {
index 1af67ebf60bcc8e798d83d420dca1f1d30e80275..0a7834c5a81393456e3b5dd18d255171d5672471 100644 (file)
@@ -64,7 +64,7 @@ public class QProfileFactoryImplIT {
   private System2 system2 = new AlwaysIncreasingSystem2();
 
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
 
   private DbSession dbSession = db.getSession();
   private ActiveRuleIndexer activeRuleIndexer = mock(ActiveRuleIndexer.class);
index b9ea7fcc91fe3350fbfc93944a1d8e8733566ee7..4c74e57bc4df99b56b5e2777aa858cf66a41b5c1 100644 (file)
@@ -79,7 +79,7 @@ public class QProfileRuleImplIT {
 
   private System2 system2 = new AlwaysIncreasingSystem2();
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @Rule
   public EsTester es = EsTester.create();
   @Rule
index d29c0f91b642d6b4c4cf189081aeed2d5ae5ed5f..5b5bedfbb391989d2a20537ec3ea6451a98e2fcc 100644 (file)
@@ -62,7 +62,7 @@ public class QProfileTreeImplIT {
 
   private System2 system2 = new AlwaysIncreasingSystem2();
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @Rule
   public EsTester es = EsTester.create();
   @Rule
index eac7cc3e7b543720576429a2fe57ac8a63c28c5e..84215ecc252c6599edcd6c48776b9d2fcd97b361 100644 (file)
@@ -61,7 +61,7 @@ public class RegisterQualityProfilesIT {
 
   private final System2 system2 = new TestSystem2().setNow(1659510722633L);
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @Rule
   public UserSessionRule userSessionRule = UserSessionRule.standalone();
   @Rule
index f252d34add8878d7d402a61418cedc597cfc9afc..17d2992398ae9594225f479e0df77d0b883bb927 100644 (file)
@@ -89,7 +89,7 @@ public class RegisterQualityProfilesNotificationIT {
 
   private System2 system2 = mock(System2.class);
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @Rule
   public UserSessionRule userSessionRule = UserSessionRule.standalone();
   @Rule
index 145ea3bc32f578db0fdd35342b8296838284f9b8..ab87edacb8f8d113a178402b571876a5712ce99b 100644 (file)
@@ -74,7 +74,7 @@ import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.
 public class ChangeParentActionIT {
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public EsTester es = EsTester.create();
   @Rule
index 7d282d04319ecba8e211c0f79df4b9fce87d50d7..abb80f78c7607dcfb3e66f514ab1a0f603449cb5 100644 (file)
@@ -54,7 +54,7 @@ public class ChangelogActionIT {
   private final TestSystem2 system2 = new TestSystem2().setNow(DateUtils.parseDateTime(DATE).getTime());
 
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index 352ff1bc8f01433cb41b638dbfa988a3233d79dd..ca0b4c25aa028621a0b8206f6c8ae12f82b6d176 100644 (file)
@@ -58,7 +58,7 @@ public class DeleteActionIT {
   private static final String A_LANGUAGE = "xoo";
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index 317b94ca6ae71c3ae2b2074e1e679eedbd07f937..65ef950cfced36d7b7c3b50828cc21f2edcf8ea6 100644 (file)
@@ -52,7 +52,7 @@ public class ExportActionIT {
   private static final String JAVA_LANGUAGE = "java";
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index e6ec279fee92e94fadf0718c83b3441579cd16f4..f086be7dc0537a6f9b215f0a100dc35cd81054b2 100644 (file)
@@ -48,7 +48,7 @@ import static org.sonar.db.permission.GlobalPermission.SCAN;
 public class RenameActionIT {
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index bb1fa77deb0276a38923539c6f56ad52b41e8b06..961924a3c738a8b18f793454edaab4f69e176d5f 100644 (file)
@@ -68,7 +68,7 @@ public class SearchActionIT {
   private static final Languages LANGUAGES = new Languages(XOO1, XOO2);
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   private final QualityProfileDbTester qualityProfileDb = db.qualityProfiles();
index c3fba012fe3c8fcfa7bbba6b8ef30d5c27e3e8b1..3c1f81b6e9a02c43852bc577044895201ad5b384 100644 (file)
@@ -65,7 +65,7 @@ public class RuleCreatorIT {
   private final System2 system2 = new TestSystem2().setNow(Instant.now().toEpochMilli());
 
   @Rule
-  public DbTester dbTester = DbTester.create(system2);
+  public DbTester dbTester = DbTester.create(system2, true);
 
   @Rule
   public EsTester es = EsTester.create();
index 587fb83ac2a99effc09520c08d61d0017965a293..dfe5c39634b3b58cbe4a4596fea9c06022b951f5 100644 (file)
@@ -73,7 +73,7 @@ public class RuleUpdaterIT {
   public UserSessionRule userSessionRule = UserSessionRule.standalone();
 
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
 
   @Rule
   public EsTester es = EsTester.create();
index e4df4e339a0023e4b9978e9e8d32995a945b9f38..05d0b7ae9be570cb729890552d74b179b1e32073 100644 (file)
@@ -42,7 +42,7 @@ public class AppActionIT {
   private static final Language LANG2 = LanguageTesting.newLanguage("ws", "Whitespace");
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index d69d779ba998e530f1db82623437c1bdf5e6509e..187502328727d8a31575bc067d275046e259a91e 100644 (file)
@@ -66,7 +66,7 @@ public class CreateActionIT {
   public UserSessionRule userSession = UserSessionRule.standalone();
 
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
 
   @Rule
   public EsTester es = EsTester.create();
index c4cd5bb97734bddb5556b87ec9e00ce13cf69536..490d35c0143bd7602ae559ab74379490c496b52f 100644 (file)
@@ -38,7 +38,7 @@ public class ListActionIT {
   private static final String RULE_KEY_2 = "S002";
 
   @Rule
-  public DbTester dbTester = DbTester.create(System2.INSTANCE);
+  public DbTester dbTester = DbTester.create(System2.INSTANCE, true);
 
   ListAction underTest = new ListAction(dbTester.getDbClient());
 
index e70c26a86db34e27dcc85e79effdc884e034452c..b97822854c5f16c687257918bff9ea8e95cea27a 100644 (file)
@@ -36,7 +36,7 @@ public class RepositoriesActionIT {
   private static final String EMPTY_JSON_RESPONSE = "{\"repositories\":[]}";
 
   @Rule
-  public DbTester dbTester = DbTester.create(System2.INSTANCE);
+  public DbTester dbTester = DbTester.create(System2.INSTANCE, true);
   
   private RepositoriesAction underTest = new RepositoriesAction(dbTester.getDbClient());
   private WsActionTester tester = new WsActionTester(underTest);
index 52df5617a90d0aaace47c4a74cc83d47e41cb4a6..f4177d92041466489785276d2a5f611b8296b964 100644 (file)
@@ -71,7 +71,7 @@ import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_TYPES;
 public class RuleQueryFactoryIT {
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index 0e6a06f7971812592cd649720292d9509aafa4a6..bbf8f70feba559e9745e9b4390574372d72683ee 100644 (file)
@@ -114,7 +114,7 @@ public class SearchActionIT {
 
   private final System2 system2 = new AlwaysIncreasingSystem2();
   @org.junit.Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @org.junit.Rule
   public EsTester es = EsTester.create();
 
index be15012b0ee99807aedd1d935f0c1fed53e3a434..ab99b80b02542258d881182c6053cd43010aa496 100644 (file)
@@ -47,7 +47,7 @@ public class GenerateSecretKeyActionIT {
   @Rule
   public TemporaryFolder temporaryFolder = new TemporaryFolder();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private DbClient dbClient = db.getDbClient();
   private MapSettings settings = new MapSettings();
index 4fc97352a34aaff13f5ea5afbb831e82dfa829d3..e400fa39ebf7cc4e28346edadad04df86e732809 100644 (file)
@@ -68,7 +68,7 @@ public class ListDefinitionsActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final DbClient dbClient = db.getDbClient();
   private ProjectDto project;
index 9e2d64112940e264038b346ec92acfa8676f68fc..bbdbdb77fa0d82412371e45d84bf8bcb7fd0bdcb 100644 (file)
@@ -67,7 +67,7 @@ public class ResetActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final I18nRule i18n = new I18nRule();
   private final PropertyDbTester propertyDb = new PropertyDbTester(db);
index 24510b7afc2623a567fe63d177267431c858f77d..e196bbe4d284a99bf9dc4b7aa329451ca605cbb1 100644 (file)
@@ -80,7 +80,7 @@ public class SetActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone().logIn();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final PropertyDbTester propertyDb = new PropertyDbTester(db);
   private final DbClient dbClient = db.getDbClient();
index 681ef67f4cffecc2590345a21a62c462fb8e0da9..d370f9f46482b17c10821aa8556bc6c150d785e4 100644 (file)
@@ -48,7 +48,7 @@ public class SettingsUpdaterIT {
 
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   DbClient dbClient = db.getDbClient();
   DbSession dbSession = db.getSession();
index 58dd418deb805a5f75dc48601fba942c860eeffc..80bcf38f408c88bea1fc7c15b65f70df8a514f0c 100644 (file)
@@ -77,7 +77,7 @@ public class ValuesActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final DbClient dbClient = db.getDbClient();
   private final PropertyDefinitions definitions = new PropertyDefinitions(System2.INSTANCE);
index 05a5513b20babaad458d7a0c5b1ea51b11607d47..7a04590fb54655d769002258f7f78137f93921d9 100644 (file)
@@ -67,7 +67,7 @@ import static org.sonar.db.component.ComponentTesting.newFileDto;
 public class IssueSnippetsActionIT {
 
   @Rule
-  public final DbTester db = DbTester.create(System2.INSTANCE);
+  public final DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public final UserSessionRule userSession = UserSessionRule.standalone();
 
index 5c49515e1660de2ba18770fd35a6b40a8476f6b2..3bd9ec6969d4c97ea5978b8277a76dbc676fdb5b 100644 (file)
@@ -47,7 +47,7 @@ public class RawActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private ResourceTypesRule resourceTypes = new ResourceTypesRule().setRootQualifiers(Qualifiers.PROJECT);
 
index dbb9df2c4884de33586428570da50599093bd781..68d1b1f98105bef6fa76cd934fa176616af8f9b3 100644 (file)
@@ -98,7 +98,7 @@ import static org.sonar.test.JsonAssert.assertJson;
 public class ComponentActionIT {
 
   @Rule
-  public final DbTester db = DbTester.create(System2.INSTANCE);
+  public final DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public final UserSessionRule userSession = UserSessionRule.standalone();
 
index a03f4399b57b594409509894bd545ee06000455e..22852b0f1a333013f88f8322e8e518a42239404f 100644 (file)
@@ -48,7 +48,7 @@ public class AnonymizeActionIT {
   private final System2 system2 = new AlwaysIncreasingSystem2();
 
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index 5af7f5a8c5ef88a86d8c412eb14fd44b4916ffce..96e5b27f69ba978cca5fef2a304ca7a038fec266 100644 (file)
@@ -64,7 +64,7 @@ public class CreateActionIT {
   private final System2 system2 = new AlwaysIncreasingSystem2();
 
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @Rule
   public UserSessionRule userSessionRule = UserSessionRule.standalone();
 
index 665db9951266c2352ff26c268c717511dea324b6..097371f5ceb275e506a48a51078086d389fb456c 100644 (file)
@@ -71,7 +71,7 @@ public class DeactivateActionIT {
   private final System2 system2 = new AlwaysIncreasingSystem2();
 
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index ef7427b9f5874ae7789fc8f587199dd98fda0b6a..219d8aca4c014f2539dcd47c2ee7a59cccf5a869 100644 (file)
@@ -37,7 +37,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 public class DismissNoticeActionIT {
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSessionRule = UserSessionRule.standalone();
 
index cf0f8bfee69a370b633d74844a7326dc04fa4556..716ec175f9ae576c7f5cf093db41036aacd33137 100644 (file)
@@ -60,7 +60,7 @@ public class UpdateActionIT {
   private final System2 system2 = new System2();
 
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone().logIn().setSystemAdministrator();
 
index ef372d567d0ff6602314da5ae15777ceabe30f0f..9874b30385439ff00cfa1f1caa20aa1ed8216117 100644 (file)
@@ -52,7 +52,7 @@ public class UpdateLoginActionIT {
   private final System2 system2 = new System2();
 
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone().logIn().setSystemAdministrator();
 
index e10daea53a458533a36c91b47bbf87a4c9f1f08c..d54826d578a2dae7d0fc413588d9c99f59bf2747 100644 (file)
@@ -34,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 public class UserAnonymizerIT {
   private final System2 system2 = new AlwaysIncreasingSystem2();
   @Rule
-  public DbTester db = DbTester.create(system2);
+  public DbTester db = DbTester.create(system2, true);
   private final UserAnonymizer userAnonymizer = new UserAnonymizer(db.getDbClient());
 
   @Test
index 42043b7af36c0118dab342158540695f3cb6ccf9..b440e2a158bfd86e87de1f69dd6061a5ed05e1fd 100644 (file)
@@ -45,7 +45,7 @@ import static org.sonar.db.permission.GlobalPermission.ADMINISTER;
 
 public class CreateActionIT {
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   private ManagedInstanceChecker managedInstanceChecker = mock(ManagedInstanceChecker.class);
index a355dbfd16490a22da82cc7caae482d76f087e32..5d039607ba4125b23fdbd6ab897a85132c1c039d 100644 (file)
@@ -39,7 +39,7 @@ public class ExternalGroupServiceIT {
   private static final String EXTERNAL_IDENTITY_PROVIDER = "EXTERNAL_IDENTITY_PROVIDER";
 
   @Rule
-  public DbTester dbTester = DbTester.create(System2.INSTANCE);
+  public DbTester dbTester = DbTester.create(System2.INSTANCE, true);
   private final DbClient dbClient = dbTester.getDbClient();
   private final DbSession dbSession = dbTester.getSession();
   private final GroupService groupService = new GroupService(dbClient, UuidFactoryFast.getInstance());
index c8951c475cbcfa9d15666b525a5bd9384269d9cf..afd4f68398275ef063b0d11223e7f4660f06fddc 100644 (file)
@@ -65,7 +65,7 @@ import static org.sonarqube.ws.UserGroups.SearchWsResponse;
 public class SearchActionIT {
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
index c065b8e5300fe5b9e68d97dc92a0bbf47ea409c5..6b72a31fb3caba1aa3f47920a6368c97e87b7b08 100644 (file)
@@ -50,7 +50,7 @@ import static org.sonar.test.JsonAssert.assertJson;
 public class UpdateActionIT {
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index 3888e144b20cc0656a09ed3ce2d1f9bd5e0bea9e..ac1645f2718fc9ea01e17cce9e536d6e3ff7c08b 100644 (file)
@@ -54,7 +54,7 @@ import static org.sonar.test.JsonAssert.assertJson;
 public class UsersActionIT {
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index 0911b363362ad94afc36b90ce9ade9d353e3285b..96fed1f8dff2a7f09e3e9fdb25a457174c2425aa 100644 (file)
@@ -81,7 +81,7 @@ public class GenerateActionIT {
   private static final String TOKEN_NAME = "Third Party Application";
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index c819e7bcf55986530ea323fa1e1c19455c7ae0e9..b01d3ebf449e8c1a268ab77b0567d9f952668cd2 100644 (file)
@@ -44,7 +44,7 @@ import static org.sonar.server.usertoken.ws.UserTokenSupport.PARAM_NAME;
 public class RevokeActionIT {
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
index 8107381c437d14f8d71c00faa344a58092e21459..a90239f7b5da1e05f432bf6540359fce3ab1bafc 100644 (file)
@@ -50,7 +50,7 @@ public class SearchActionIT {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private DbClient dbClient = db.getDbClient();
   private WsActionTester ws = new WsActionTester(new SearchAction(dbClient, new UserTokenSupport(db.getDbClient(), userSession)));
index d5020e4663cf8b83757fab6318d5b166c7af4a80..3a3c835f6271d308962f105590777aaf19e649fe 100644 (file)
@@ -235,9 +235,9 @@ public class ActivityAction implements CeWsAction {
     String componentKey = request.getComponent();
 
     if (componentKey != null) {
-      Optional<EntityDto> foundComponent;
-      foundComponent = dbClient.entityDao().selectByKey(dbSession, componentKey);
-      return checkFoundWithOptional(foundComponent, "Component '%s' does not exist", componentKey);
+      Optional<EntityDto> foundEntity;
+      foundEntity = dbClient.entityDao().selectByKey(dbSession, componentKey);
+      return checkFoundWithOptional(foundEntity, "Component '%s' does not exist", componentKey);
     } else {
       return null;
     }
index 06bd4e41cf493c3faf44bab6d87e482a4fcd5c33..7a6ab621dbc034a9e16d0112b56d03a314ead201 100644 (file)
@@ -35,6 +35,7 @@ import org.sonar.core.util.stream.MoreCollectors;
 import org.sonar.db.DatabaseUtils;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
+import org.sonar.db.component.BranchDto;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.ComponentQuery;
 import org.sonar.db.component.ProjectLastAnalysisDateDto;
@@ -102,7 +103,7 @@ public class SearchAction implements ProjectsWsAction {
 
     action.createParam(PARAM_VISIBILITY)
       .setDescription("Filter the projects that should be visible to everyone (%s), or only specific user/groups (%s).<br/>" +
-          "If no visibility is specified, the default project visibility will be used.",
+        "If no visibility is specified, the default project visibility will be used.",
         Visibility.PUBLIC.getLabel(), Visibility.PRIVATE.getLabel())
       .setRequired(false)
       .setInternal(true)
@@ -159,13 +160,15 @@ public class SearchAction implements ProjectsWsAction {
       Paging paging = buildPaging(dbSession, request, query);
       List<ComponentDto> components = dbClient.componentDao().selectByQuery(dbSession, query, paging.offset(), paging.pageSize());
       Set<String> componentUuids = components.stream().map(ComponentDto::uuid).collect(MoreCollectors.toHashSet(components.size()));
-      Map<String, Long> lastAnalysisDateByComponentUuid = dbClient.snapshotDao().selectLastAnalysisDateByProjectUuids(dbSession, componentUuids).stream()
+      List<BranchDto> branchDtos = dbClient.branchDao().selectByUuids(dbSession, componentUuids);
+      Map<String, String> projectUuidByComponentUuid = branchDtos.stream().collect(Collectors.toMap(BranchDto::getUuid,BranchDto::getProjectUuid));
+      Map<String, Long> lastAnalysisDateByComponentUuid = dbClient.snapshotDao().selectLastAnalysisDateByProjectUuids(dbSession, projectUuidByComponentUuid.values()).stream()
         .collect(Collectors.toMap(ProjectLastAnalysisDateDto::getProjectUuid, ProjectLastAnalysisDateDto::getDate));
       Map<String, SnapshotDto> snapshotsByComponentUuid = dbClient.snapshotDao()
         .selectLastAnalysesByRootComponentUuids(dbSession, componentUuids).stream()
         .collect(MoreCollectors.uniqueIndex(SnapshotDto::getRootComponentUuid, identity()));
 
-      return buildResponse(components, snapshotsByComponentUuid, lastAnalysisDateByComponentUuid, paging);
+      return buildResponse(components, snapshotsByComponentUuid, lastAnalysisDateByComponentUuid, projectUuidByComponentUuid, paging);
     }
   }
 
@@ -194,7 +197,7 @@ public class SearchAction implements ProjectsWsAction {
   }
 
   private static SearchWsResponse buildResponse(List<ComponentDto> components, Map<String, SnapshotDto> snapshotsByComponentUuid,
-    Map<String, Long> lastAnalysisDateByComponentUuid, Paging paging) {
+    Map<String, Long> lastAnalysisDateByComponentUuid, Map<String, String> projectUuidByComponentUuid, Paging paging) {
     SearchWsResponse.Builder responseBuilder = newBuilder();
     responseBuilder.getPagingBuilder()
       .setPageIndex(paging.pageIndex())
@@ -203,7 +206,7 @@ public class SearchAction implements ProjectsWsAction {
       .build();
 
     components.stream()
-      .map(dto -> dtoToProject(dto, snapshotsByComponentUuid.get(dto.uuid()), lastAnalysisDateByComponentUuid.get(dto.uuid())))
+      .map(dto -> dtoToProject(dto, snapshotsByComponentUuid.get(dto.uuid()), lastAnalysisDateByComponentUuid.get(projectUuidByComponentUuid.get(dto.uuid()))))
       .forEach(responseBuilder::addComponents);
     return responseBuilder.build();
   }
index ed2da8ed38b32fa97359ab7df3fb0a2be6e3956b..98acd6d07b792e4ca7ccaff1f1506bf87e1a1bed 100644 (file)
@@ -52,7 +52,7 @@ public class TaskFormatterTest {
   private static final int WARNING_COUNT = 5;
 
   @Rule
-  public DbTester db = DbTester.create(System2.INSTANCE);
+  public DbTester db = DbTester.create(System2.INSTANCE, true);
 
   private final System2 system2 = mock(System2.class);
   private final TaskFormatter underTest = new TaskFormatter(db.getDbClient(), system2);