]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8595 make ComponentMapper.selectByKey retrieve organization's key
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Wed, 11 Jan 2017 17:48:03 +0000 (18:48 +0100)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Mon, 16 Jan 2017 10:38:43 +0000 (11:38 +0100)
by joining on table ORGANIZATIONS

19 files changed:
server/sonar-server/src/test/java/org/sonar/server/batch/ProjectDataLoaderTest.java
server/sonar-server/src/test/java/org/sonar/server/component/ComponentServiceTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ReportPersistComponentsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ViewsPersistComponentsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/CreateActionTest.java
server/sonar-server/src/test/resources/org/sonar/server/computation/task/projectanalysis/step/LoadPeriodsStepTest/no_previous_version.xml
server/sonar-server/src/test/resources/org/sonar/server/computation/task/projectanalysis/step/LoadPeriodsStepTest/previous_version_deleted.xml
server/sonar-server/src/test/resources/org/sonar/server/computation/task/projectanalysis/step/LoadPeriodsStepTest/previous_version_is_last_one.xml
server/sonar-server/src/test/resources/org/sonar/server/computation/task/projectanalysis/step/LoadPeriodsStepTest/shared.xml
server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/load_component_id_from_db.xml
server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/load_project_id_from_db.xml
server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_insert_new_issues.xml
server/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_update_issues.xml
server/sonar-server/src/test/resources/org/sonar/server/source/ws/HashActionTest/no_source.xml
server/sonar-server/src/test/resources/org/sonar/server/source/ws/HashActionTest/shared.xml
server/sonar-server/src/test/resources/org/sonar/server/source/ws/HashActionTest/show_hashes_on_test_file.xml
sonar-db/src/main/resources/org/sonar/db/component/ComponentMapper.xml
sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java
sonar-db/src/test/java/org/sonar/db/organization/OrganizationDbTester.java

index 5b64e57beb7bac7ea3c4c8e0f5006430bb50fd89..0028f9f778e63a6adc74ca14890f9bfa713f0858 100644 (file)
@@ -31,6 +31,7 @@ import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDto;
+import org.sonar.db.organization.OrganizationDto;
 import org.sonar.server.exceptions.BadRequestException;
 import org.sonar.server.exceptions.NotFoundException;
 import org.sonar.server.user.UserSession;
@@ -94,13 +95,14 @@ public class ProjectDataLoaderTest {
       {Scopes.PROJECT, "DEV_PRJ"}
     };
 
+    OrganizationDto organizationDto = dbTester.organizations().insert();
     for (String[] scopeAndQualifier : allScopesAndQualifierButProjectAndModule) {
       String scope = scopeAndQualifier[0];
       String qualifier = scopeAndQualifier[1];
       String key = "theKey_" + scope + "_" + qualifier;
       String uuid = "uuid_" + uuidCounter++;
       dbClient.componentDao().insert(dbSession, new ComponentDto()
-        .setOrganizationUuid("org1")
+        .setOrganizationUuid(organizationDto.getUuid())
         .setUuid(uuid)
         .setUuidPath(uuid + ".")
         .setRootUuid(uuid)
index 682a168111eb44bf004da8d35573bdf7f3b2c410..21a886bfd85a7bd5a90b49c19b9e1c0540e7c030 100644 (file)
@@ -65,8 +65,6 @@ import static org.sonar.server.component.es.ProjectMeasuresIndexDefinition.TYPE_
 
 public class ComponentServiceTest {
 
-  private static final String ORGANIZATION_UUID = "org 1A";
-
   private System2 system2 = System2.INSTANCE;
 
   @Rule
@@ -84,6 +82,7 @@ public class ComponentServiceTest {
   private I18nRule i18n = new I18nRule();
   private ProjectMeasuresIndexer projectMeasuresIndexer = new ProjectMeasuresIndexer(system2, dbClient, es.client());
 
+  private OrganizationDto organization;
   private ComponentService underTest;
 
   @Before
@@ -91,6 +90,7 @@ public class ComponentServiceTest {
     i18n.put("qualifier.TRK", "Project");
 
     underTest = new ComponentService(dbClient, i18n, userSession, system2, new ComponentFinder(dbClient), projectMeasuresIndexer);
+    organization = dbTester.organizations().insert();
   }
 
   @Test
@@ -126,14 +126,14 @@ public class ComponentServiceTest {
     String key = underTest.create(
       dbSession,
       newComponentBuilder()
-        .setOrganizationUuid(ORGANIZATION_UUID)
+        .setOrganizationUuid(organization.getUuid())
         .setKey("struts")
         .setName("Struts project")
         .build())
       .getKey();
 
     ComponentDto project = underTest.getNullableByKey(key);
-    assertThat(project.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID);
+    assertThat(project.getOrganizationUuid()).isEqualTo(organization.getUuid());
     assertThat(project.key()).isEqualTo("struts");
     assertThat(project.deprecatedKey()).isEqualTo("struts");
     assertThat(project.uuid()).isNotNull();
@@ -156,7 +156,7 @@ public class ComponentServiceTest {
     String key = underTest.create(
       dbSession,
       newComponentBuilder()
-        .setOrganizationUuid(ORGANIZATION_UUID)
+        .setOrganizationUuid(organization.getUuid())
         .setKey("struts")
         .setName("Struts project")
         .setBranch("origin/branch")
@@ -164,7 +164,7 @@ public class ComponentServiceTest {
       .getKey();
 
     ComponentDto project = underTest.getNullableByKey(key);
-    assertThat(project.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID);
+    assertThat(project.getOrganizationUuid()).isEqualTo(organization.getUuid());
     assertThat(project.key()).isEqualTo("struts:origin/branch");
     assertThat(project.deprecatedKey()).isEqualTo("struts:origin/branch");
   }
@@ -176,7 +176,7 @@ public class ComponentServiceTest {
     String key = underTest.create(
       dbSession,
       newComponentBuilder()
-        .setOrganizationUuid(ORGANIZATION_UUID)
+        .setOrganizationUuid(organization.getUuid())
         .setKey("all-project")
         .setName("All Projects")
         .setQualifier(Qualifiers.VIEW)
@@ -184,7 +184,7 @@ public class ComponentServiceTest {
       .getKey();
 
     ComponentDto project = underTest.getNullableByKey(key);
-    assertThat(project.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID);
+    assertThat(project.getOrganizationUuid()).isEqualTo(organization.getUuid());
     assertThat(project.key()).isEqualTo("all-project");
     assertThat(project.deprecatedKey()).isEqualTo("all-project");
     assertThat(project.uuid()).isNotNull();
@@ -208,7 +208,7 @@ public class ComponentServiceTest {
     String key = underTest.createDeveloper(
       dbSession,
       newComponentBuilder()
-        .setOrganizationUuid(ORGANIZATION_UUID)
+        .setOrganizationUuid(organization.getUuid())
         .setKey("DEV:jon.name@mail.com")
         .setName("John")
         .setQualifier("DEV")
@@ -217,7 +217,7 @@ public class ComponentServiceTest {
     dbTester.getSession().commit();
 
     ComponentDto dev = underTest.getNullableByKey(key);
-    assertThat(dev.getOrganizationUuid()).isEqualTo(ORGANIZATION_UUID);
+    assertThat(dev.getOrganizationUuid()).isEqualTo(organization.getUuid());
     assertThat(dev.key()).isEqualTo("DEV:jon.name@mail.com");
     assertThat(dev.deprecatedKey()).isEqualTo("DEV:jon.name@mail.com");
     assertThat(dev.uuid()).isNotNull();
@@ -242,7 +242,7 @@ public class ComponentServiceTest {
     underTest.create(
       dbSession,
       newComponentBuilder()
-        .setOrganizationUuid(ORGANIZATION_UUID)
+        .setOrganizationUuid(organization.getUuid())
         .setKey("struts?parent")
         .setName("Struts project")
         .build());
@@ -258,7 +258,7 @@ public class ComponentServiceTest {
     underTest.create(
       dbSession,
       newComponentBuilder()
-        .setOrganizationUuid(ORGANIZATION_UUID)
+        .setOrganizationUuid(organization.getUuid())
         .setKey("struts")
         .setName("Struts project")
         .setBranch("origin?branch")
@@ -278,7 +278,7 @@ public class ComponentServiceTest {
     underTest.create(
       dbSession,
       newComponentBuilder()
-        .setOrganizationUuid(ORGANIZATION_UUID)
+        .setOrganizationUuid(organization.getUuid())
         .setKey("struts")
         .setName("Struts project")
         .build());
@@ -315,7 +315,7 @@ public class ComponentServiceTest {
     underTest.create(
       session,
       newComponentBuilder()
-        .setOrganizationUuid(ORGANIZATION_UUID)
+        .setOrganizationUuid(organization.getUuid())
         .setKey(projectKey)
         .setName(projectKey)
         .build());
index eefb3ee52fc4a0cdd02695c0c29bd7595f89e6f2..ecb1ec7253ea022b62c29595bd5728f32556d77a 100644 (file)
@@ -79,6 +79,7 @@ public class ReportPersistComponentsStepTest extends BaseStepTest {
     now = DATE_FORMAT.parse("2015-06-02");
     when(system2.now()).thenReturn(now.getTime());
 
+    dbTester.organizations().insertForUuid(ORGANIZATION_UUID);
     underTest = new PersistComponentsStep(dbClient, treeRootHolder, dbIdsRepository, system2, disabledComponentsHolder, analysisMetadataHolder);
   }
 
@@ -231,7 +232,7 @@ public class ReportPersistComponentsStepTest extends BaseStepTest {
 
   @Test
   public void persist_only_new_components() {
-    // Project amd module already exists
+    // Project and module already exists
     ComponentDto project = ComponentTesting.newProjectDto(dbTester.getDefaultOrganization(), "ABCD").setKey(PROJECT_KEY).setName("Project");
     dbClient.componentDao().insert(dbTester.getSession(), project);
     ComponentDto module = ComponentTesting.newModuleDto("BCDE", project).setKey(MODULE_KEY).setName("Module");
index 2f1d0bb39e06b51a752d816a8cd8dbc29a64c9d6..c147d2fbd1e2582806c0c31a9565a18b587c6fd4 100644 (file)
@@ -76,7 +76,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest {
   public MutableDbIdsRepositoryRule dbIdsRepository = MutableDbIdsRepositoryRule.create(treeRootHolder);
   @Rule
   public AnalysisMetadataHolderRule analysisMetadataHolder = new AnalysisMetadataHolderRule()
-      .setOrganizationUuid(ORGANIZATION_UUID);
+    .setOrganizationUuid(ORGANIZATION_UUID);
 
   private System2 system2 = mock(System2.class);
   private DbClient dbClient = dbTester.getDbClient();
@@ -90,6 +90,7 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest {
     now = DATE_FORMAT.parse("2015-06-02");
     when(system2.now()).thenReturn(now.getTime());
 
+    dbTester.organizations().insertForUuid(ORGANIZATION_UUID);
     underTest = new PersistComponentsStep(dbClient, treeRootHolder, dbIdsRepository, system2, disabledComponentsHolder, analysisMetadataHolder);
   }
 
index 92a84a21ce7c3ef4c9478bea73e1a45d91068c34..c8fcd53f8a682defe4dd12ccbd882b0adcaa582b 100644 (file)
@@ -33,6 +33,7 @@ import org.sonar.db.DbSession;
 import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.ComponentLinkDto;
+import org.sonar.db.organization.OrganizationDto;
 import org.sonar.server.component.ComponentFinder;
 import org.sonar.server.exceptions.ForbiddenException;
 import org.sonar.server.exceptions.NotFoundException;
@@ -207,15 +208,11 @@ public class CreateActionTest {
   }
 
   private ComponentDto insertProject() {
-    ComponentDto project = new ComponentDto()
-      .setOrganizationUuid("org1")
-      .setUuid(PROJECT_UUID)
-      .setKey(PROJECT_KEY)
-      .setUuidPath("")
-      .setRootUuid("");
-    dbClient.componentDao().insert(dbSession, project);
-    dbSession.commit();
-    return project;
+    OrganizationDto organizationDto = db.organizations().insert();
+    return db.components().insertProject(
+      organizationDto,
+      (t) -> t.setUuid(PROJECT_UUID)
+        .setKey(PROJECT_KEY));
   }
 
   private void createAndTest(String name, String url, String type) throws IOException {
index f864c0eb27dfcfeca9388aa5f7d467ddada02043..0d3e4cf9395df4014b7a8d4f47f0bb3aa277fa76 100644 (file)
@@ -1,5 +1,11 @@
 <dataset>
 
+  <organizations uuid="org1"
+                 kee="org1_key"
+                 name="org1_name"
+                 created_at="1000"
+                 updated_at="2000"/>
+
   <projects organization_uuid="org1"
             uuid="ABCD"
             uuid_path="NOT_USED"
index d29a3a7f525ae259b2d34ce4cbb5256bad1bdb54..ce221c0ad9b0070f9b9553226723d106f31f9baa 100644 (file)
@@ -1,5 +1,11 @@
 <dataset>
 
+  <organizations uuid="org1"
+                 kee="org1_key"
+                 name="org1_name"
+                 created_at="1000"
+                 updated_at="2000"/>
+
   <projects organization_uuid="org1"
             id="1"
             kee="ROOT_KEY"
index 413e88c0ac9c2e098a6418449c2b0fa6c85b3ac9..fa4f2dd141f2254c3bf90dcd14429b0f252a5478 100644 (file)
@@ -1,5 +1,11 @@
 <dataset>
 
+  <organizations uuid="org1"
+                 kee="org1_key"
+                 name="org1_name"
+                 created_at="1000"
+                 updated_at="2000"/>
+
   <projects organization_uuid="org1"
             uuid="ABCD"
             uuid_path="NOT_USED"
index 4dffe4d8577a9281eba365fff064a32aa4c76777..8707b71e42afbd521a7e389e9dc4247be90d2296 100644 (file)
@@ -1,5 +1,11 @@
 <dataset>
 
+  <organizations uuid="org1"
+                 kee="org1_key"
+                 name="org1_name"
+                 created_at="1000"
+                 updated_at="2000"/>
+
   <projects organization_uuid="org1"
             id="1"
             kee="ROOT_KEY"
index afe9192e51dab1f47d676c50f31176e8ea97add9..9403a26202ff3be30ce7b46140b52979fc610b33 100644 (file)
@@ -1,4 +1,11 @@
 <dataset>
+
+  <organizations uuid="org1"
+                 kee="org1_key"
+                 name="org1_name"
+                 created_at="1000"
+                 updated_at="2000"/>
+
   <projects organization_uuid="org1"
             uuid="ABCD"
             uuid_path="NOT_USED"
index 0955f4a54d9615c10c01791cb4314f6fc9c87ce6..733373d875e2825d80cf6c5875f89706d205fedc 100644 (file)
@@ -1,4 +1,11 @@
 <dataset>
+
+  <organizations uuid="org1"
+                 kee="org1_key"
+                 name="org1_name"
+                 created_at="1000"
+                 updated_at="2000"/>
+
   <projects organization_uuid="org1"
             uuid="ABCD"
             uuid_path="NOT_USED"
index afe9192e51dab1f47d676c50f31176e8ea97add9..9403a26202ff3be30ce7b46140b52979fc610b33 100644 (file)
@@ -1,4 +1,11 @@
 <dataset>
+
+  <organizations uuid="org1"
+                 kee="org1_key"
+                 name="org1_name"
+                 created_at="1000"
+                 updated_at="2000"/>
+
   <projects organization_uuid="org1"
             uuid="ABCD"
             uuid_path="NOT_USED"
index 8330b57a5cd695b3a3717a0ad11a670ab6afc280..619981235dd1ead597e3426258e26bb1045917cc 100644 (file)
@@ -1,5 +1,11 @@
 <dataset>
 
+  <organizations uuid="org1"
+                 kee="org1_key"
+                 name="org1_name"
+                 created_at="1000"
+                 updated_at="2000"/>
+
   <projects organization_uuid="org1"
             uuid="ABCD"
             uuid_path="NOT_USED"
index 902dc58aaf46367bd1460dbdcbb4a8afe0ab68dd..4f4626059be7737719dc2bbe02c6b4ef752cbbc3 100644 (file)
@@ -1,5 +1,11 @@
 <dataset>
 
+  <organizations uuid="org1"
+                 kee="org1_key"
+                 name="org1_name"
+                 created_at="1000"
+                 updated_at="2000"/>
+
   <projects organization_uuid="org1"
             uuid="ABCD"
             uuid_path="NOT_USED"
index 007440008a7cd2fa71416ea7288006c3ffed23d0..921f35fb4710e121c0c6c1235b05c3910e9b78e1 100644 (file)
@@ -1,5 +1,11 @@
 <dataset>
 
+  <organizations uuid="org1"
+                 kee="org1_key"
+                 name="org1_name"
+                 created_at="1000"
+                 updated_at="2000"/>
+
   <projects organization_uuid="org1"
             uuid="ABCD"
             uuid_path="NOT_USED"
index 2d39c737a3e6dc29e21d30bdb172f6c0ecbc5272..2f0a227126a46399631ca654fff46ee76ab21fa0 100644 (file)
@@ -1,5 +1,11 @@
 <dataset>
 
+  <organizations uuid="org1"
+                 kee="org1_key"
+                 name="org1_name"
+                 created_at="1000"
+                 updated_at="2000"/>
+
   <projects organization_uuid="org1"
             uuid="ABCD"
             uuid_path="NOT_USED"
index 0c2badea436a938b49ee2044118519e03b749b42..b72f01e110068039f40b49ad632058565a06804f 100644 (file)
 
   <select id="selectByKey" parameterType="String" resultType="Component">
     SELECT
-    <include refid="componentColumns"/>
+      <include refid="componentColumns"/>,
+      o.kee as organizationKey
     FROM projects p
-    <where>
-      AND p.kee=#{key}
-    </where>
+    inner join organizations o on
+      o.uuid = p.organization_uuid
+    where
+      p.kee=#{key}
   </select>
 
   <select id="selectComponentsHavingSameKeyOrderedById" parameterType="String" resultType="Component">
index 641b9908f2e3cf36b9015c79d6d8c098590fc4ba..20351cc5f88a64446177f1d592781983bb57ef98 100644 (file)
@@ -153,6 +153,9 @@ public class ComponentDaoTest {
     assertThat(optional).isPresent();
 
     ComponentDto result = optional.get();
+    assertThat(result.getOrganizationUuid()).isEqualTo("org1");
+    assertThat(result.getOrganizationKey()).isEqualTo("org1_key");
+    assertThat(result.uuid()).isEqualTo("U4");
     assertThat(result.key()).isEqualTo("org.struts:struts-core:src/org/struts/RequestContext.java");
     assertThat(result.path()).isEqualTo("path_of_U4");
     assertThat(result.name()).isEqualTo("RequestContext.java");
@@ -160,7 +163,6 @@ public class ComponentDaoTest {
     assertThat(result.qualifier()).isEqualTo("FIL");
     assertThat(result.scope()).isEqualTo("FIL");
     assertThat(result.language()).isEqualTo("java");
-    assertThat(result.uuid()).isEqualTo("U4");
     assertThat(result.getRootUuid()).isEqualTo("U1");
 
     assertThat(underTest.selectByKey(dbSession, "unknown")).isAbsent();
index b9d57942c4e1987903476f22c632ab8858d52bec..f6e47333181697f3db4c48e1e12416f819439156 100644 (file)
@@ -40,6 +40,10 @@ public class OrganizationDbTester {
     return insert(OrganizationTesting.newOrganizationDto().setKey(key));
   }
 
+  public OrganizationDto insertForUuid(String organizationUuid) {
+    return insert(OrganizationTesting.newOrganizationDto().setUuid(organizationUuid));
+  }
+
   /**
    * Insert the provided {@link OrganizationDto} and commit the session
    */