diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2017-01-11 18:48:03 +0100 |
---|---|---|
committer | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2017-01-16 11:38:43 +0100 |
commit | 299ea02a3f54012671fd4aea75c31104891a4a84 (patch) | |
tree | ec80a2a34179a845a738a06361ceac1e0ae106de /sonar-db | |
parent | 9312e5a69389a7560267d0c30e606d1119ef02c5 (diff) | |
download | sonarqube-299ea02a3f54012671fd4aea75c31104891a4a84.tar.gz sonarqube-299ea02a3f54012671fd4aea75c31104891a4a84.zip |
SONAR-8595 enforce organization of component is specified in UTs
for UTs using ComponentTesting and/or ComponentDbTester
Diffstat (limited to 'sonar-db')
22 files changed, 248 insertions, 193 deletions
diff --git a/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java b/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java index 91c5e13e876..641b9908f2e 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java @@ -667,9 +667,7 @@ public class ComponentDaoTest { @Test public void update() { - ComponentDto dto = ComponentTesting.newProjectDto("U1"); - underTest.insert(dbSession, dto); - dbSession.commit(); + db.components().insertProject(db.getDefaultOrganization(), "U1"); underTest.update(dbSession, new ComponentUpdateDto() .setUuid("U1") @@ -704,9 +702,9 @@ public class ComponentDaoTest { @Test public void updateBEnabledToFalse() { - ComponentDto dto1 = ComponentTesting.newProjectDto("U1"); - ComponentDto dto2 = ComponentTesting.newProjectDto("U2"); - ComponentDto dto3 = ComponentTesting.newProjectDto("U3"); + ComponentDto dto1 = ComponentTesting.newProjectDto(db.getDefaultOrganization(), "U1"); + ComponentDto dto2 = ComponentTesting.newProjectDto(db.getDefaultOrganization(), "U2"); + ComponentDto dto3 = ComponentTesting.newProjectDto(db.getDefaultOrganization(), "U3"); underTest.insert(dbSession, dto1, dto2, dto3); underTest.updateBEnabledToFalse(dbSession, asList("U1", "U2")); @@ -755,8 +753,8 @@ public class ComponentDaoTest { @Test public void delete() throws Exception { - ComponentDto project1 = componentDb.insertComponent(newProjectDto().setKey("PROJECT_1")); - componentDb.insertComponent(newProjectDto().setKey("PROJECT_2")); + ComponentDto project1 = componentDb.insertProject(db.getDefaultOrganization(), (t) -> t.setKey("PROJECT_1")); + componentDb.insertProject(db.getDefaultOrganization(), (t) -> t.setKey("PROJECT_2")); underTest.delete(dbSession, project1.getId()); dbSession.commit(); @@ -767,11 +765,12 @@ public class ComponentDaoTest { @Test public void select_by_query_with_paging_query_and_qualifiers() { - componentDb.insertProjectAndSnapshot(newProjectDto().setName("aaaa-name")); - componentDb.insertProjectAndSnapshot(newView()); - componentDb.insertProjectAndSnapshot(newDeveloper("project-name")); + OrganizationDto organizationDto = db.organizations().insert(); + componentDb.insertProjectAndSnapshot(newProjectDto(organizationDto).setName("aaaa-name")); + componentDb.insertProjectAndSnapshot(newView(organizationDto)); + componentDb.insertProjectAndSnapshot(newDeveloper(organizationDto, "project-name")); for (int i = 9; i >= 1; i--) { - componentDb.insertProjectAndSnapshot(newProjectDto().setName("project-" + i)); + componentDb.insertProjectAndSnapshot(newProjectDto(organizationDto).setName("project-" + i)); } componentDb.indexAllComponents(); @@ -786,7 +785,7 @@ public class ComponentDaoTest { @Test public void select_by_query_name_with_special_characters() { - componentDb.insertProjectAndSnapshot(newProjectDto().setName("project-\\_%/-name")); + componentDb.insertProjectAndSnapshot(newProjectDto(db.getDefaultOrganization()).setName("project-\\_%/-name")); componentDb.indexAllComponents(); ComponentQuery query = ComponentQuery.builder().setNameOrKeyQuery("-\\_%/-").setQualifiers(Qualifiers.PROJECT).build(); @@ -798,7 +797,7 @@ public class ComponentDaoTest { @Test public void select_by_query_key_with_special_characters() { - componentDb.insertProjectAndSnapshot(newProjectDto().setKey("project-_%-key")); + componentDb.insertProjectAndSnapshot(newProjectDto(db.organizations().insert()).setKey("project-_%-key")); componentDb.indexAllComponents(); ComponentQuery query = ComponentQuery.builder().setNameOrKeyQuery("project-_%-key").setQualifiers(Qualifiers.PROJECT).build(); @@ -810,8 +809,8 @@ public class ComponentDaoTest { @Test public void select_by_query_filter_on_language() { - componentDb.insertComponent(newProjectDto().setKey("java-project-key").setLanguage("java")); - componentDb.insertComponent(newProjectDto().setKey("cpp-project-key").setLanguage("cpp")); + componentDb.insertComponent(newProjectDto(db.getDefaultOrganization()).setKey("java-project-key").setLanguage("java")); + componentDb.insertComponent(newProjectDto(db.getDefaultOrganization()).setKey("cpp-project-key").setLanguage("cpp")); ComponentQuery query = ComponentQuery.builder().setLanguage("java").setQualifiers(Qualifiers.PROJECT).build(); List<ComponentDto> result = underTest.selectByQuery(dbSession, query, 0, 10); @@ -832,9 +831,10 @@ public class ComponentDaoTest { @Test public void select_by_query_on_component_ids() { - ComponentDto sonarqube = componentDb.insertComponent(newProjectDto()); - ComponentDto jdk8 = componentDb.insertComponent(newProjectDto()); - ComponentDto cLang = componentDb.insertComponent(newProjectDto()); + OrganizationDto organizationDto = db.organizations().insert(); + ComponentDto sonarqube = componentDb.insertComponent(newProjectDto(organizationDto)); + ComponentDto jdk8 = componentDb.insertComponent(newProjectDto(organizationDto)); + ComponentDto cLang = componentDb.insertComponent(newProjectDto(organizationDto)); ComponentQuery query = ComponentQuery.builder().setQualifiers(Qualifiers.PROJECT) .setComponentIds(newHashSet(sonarqube.getId(), jdk8.getId())).build(); @@ -848,7 +848,7 @@ public class ComponentDaoTest { @Test public void selectParent() { // project -> module -> file - ComponentDto project = newProjectDto(PROJECT_UUID); + ComponentDto project = newProjectDto(db.getDefaultOrganization(), PROJECT_UUID); componentDb.insertProjectAndSnapshot(project); ComponentDto module = newModuleDto(MODULE_UUID, project); componentDb.insertComponent(module); @@ -890,7 +890,7 @@ public class ComponentDaoTest { @Test public void select_descendants_with_children_stragegy() { // project has 2 children: module and file 1. Other files are part of module. - ComponentDto project = newProjectDto(PROJECT_UUID); + ComponentDto project = newProjectDto(db.organizations().insert(), PROJECT_UUID); componentDb.insertProjectAndSnapshot(project); ComponentDto module = newModuleDto(MODULE_UUID, project); componentDb.insertComponent(module); @@ -956,7 +956,7 @@ public class ComponentDaoTest { @Test public void select_descendants_with_leaves_strategy() { - ComponentDto project = newProjectDto(PROJECT_UUID); + ComponentDto project = newProjectDto(db.getDefaultOrganization(), PROJECT_UUID); componentDb.insertProjectAndSnapshot(project); componentDb.insertComponent(newModuleDto("module-1-uuid", project)); componentDb.insertComponent(newFileDto(project, null, "file-1-uuid")); @@ -980,13 +980,14 @@ public class ComponentDaoTest { @Test public void select_descendants_of_a_view_and_filter_by_name() { - ComponentDto view = newView(A_VIEW_UUID); + OrganizationDto organizationDto = db.organizations().insert(); + ComponentDto view = newView(organizationDto, A_VIEW_UUID); componentDb.insertViewAndSnapshot(view); // one subview ComponentDto subView = newSubView(view, "subview-uuid", "subview-key").setName("subview name"); componentDb.insertComponent(subView); // one project and its copy linked to the view - ComponentDto project = newProjectDto(PROJECT_UUID).setName("project name"); + ComponentDto project = newProjectDto(organizationDto, PROJECT_UUID).setName("project name"); componentDb.insertProjectAndSnapshot(project); componentDb.insertComponent(newProjectCopy("project-copy-uuid", project, view)); componentDb.indexAllComponents(); diff --git a/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest.java b/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest.java index 6cdcf23509a..bec08e156bc 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest.java +++ b/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest.java @@ -25,6 +25,7 @@ import org.sonar.api.utils.System2; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.DbTester; +import org.sonar.db.organization.OrganizationDto; import static org.assertj.core.api.Assertions.assertThat; import static org.sonar.db.component.ComponentTesting.newProjectDto; @@ -48,10 +49,11 @@ public class ComponentDaoWithDuplicatedKeysTest { @Test public void select_components_having_same_key() { - insertProject(newProjectDto().setKey(PROJECT_KEY)); - insertProject(newProjectDto().setKey(PROJECT_KEY)); - insertProject(newProjectDto().setKey(PROJECT_KEY)); - insertProject(newProjectDto().setKey("ANOTHER_PROJECT_KEY")); + OrganizationDto organizationDto = db.organizations().insert(); + insertProject(newProjectDto(organizationDto).setKey(PROJECT_KEY)); + insertProject(newProjectDto(organizationDto).setKey(PROJECT_KEY)); + insertProject(newProjectDto(organizationDto).setKey(PROJECT_KEY)); + insertProject(newProjectDto(organizationDto).setKey("ANOTHER_PROJECT_KEY")); assertThat(underTest.selectComponentsHavingSameKeyOrderedById(db.getSession(), PROJECT_KEY)).hasSize(3); } diff --git a/sonar-db/src/test/java/org/sonar/db/component/ComponentDbTester.java b/sonar-db/src/test/java/org/sonar/db/component/ComponentDbTester.java index d496f35f451..605f4820b67 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/ComponentDbTester.java +++ b/sonar-db/src/test/java/org/sonar/db/component/ComponentDbTester.java @@ -20,6 +20,7 @@ package org.sonar.db.component; import java.util.List; +import java.util.function.Consumer; import org.sonar.api.resources.Qualifiers; import org.sonar.db.DbClient; import org.sonar.db.DbSession; @@ -27,7 +28,9 @@ import org.sonar.db.DbTester; import org.sonar.db.organization.OrganizationDto; import static java.util.Arrays.asList; +import static org.sonar.db.component.ComponentTesting.newDeveloper; import static org.sonar.db.component.ComponentTesting.newProjectDto; +import static org.sonar.db.component.ComponentTesting.newView; import static org.sonar.db.component.SnapshotTesting.newAnalysis; public class ComponentDbTester { @@ -62,25 +65,71 @@ public class ComponentDbTester { } public ComponentDto insertComponent(ComponentDto component) { - dbClient.componentDao().insert(dbSession, component); - db.commit(); - return component; + return insertComponentImpl(component, noExtraConfiguration()); } public ComponentDto insertProject() { - ComponentDto project = newProjectDto(); - dbClient.componentDao().insert(dbSession, project); - db.commit(); + return insertComponentImpl(newProjectDto(db.getDefaultOrganization()), noExtraConfiguration()); + } + + public ComponentDto insertProject(Consumer<ComponentDto> dtoPopulator) { + return insertComponentImpl(newProjectDto(db.getDefaultOrganization()), dtoPopulator); + } - return project; + public ComponentDto insertProject(OrganizationDto organizationDto, Consumer<ComponentDto> dtoPopulator) { + return insertComponentImpl(newProjectDto(organizationDto), dtoPopulator); } public ComponentDto insertProject(OrganizationDto organizationDto) { - ComponentDto project = newProjectDto().setOrganizationUuid(organizationDto.getUuid()); - dbClient.componentDao().insert(dbSession, project); + return insertComponentImpl(newProjectDto(organizationDto), noExtraConfiguration()); + } + + public ComponentDto insertProject(OrganizationDto organizationDto, String uuid) { + return insertComponentImpl(newProjectDto(organizationDto, uuid), noExtraConfiguration()); + } + + public ComponentDto insertView() { + return insertComponentImpl(newView(db.getDefaultOrganization()), noExtraConfiguration()); + } + + public ComponentDto insertView(Consumer<ComponentDto> dtoPopulator) { + return insertComponentImpl(newView(db.getDefaultOrganization()), dtoPopulator); + } + + public ComponentDto insertView(OrganizationDto organizationDto, Consumer<ComponentDto> dtoPopulator) { + return insertComponentImpl(newView(organizationDto), dtoPopulator); + } + + public ComponentDto insertView(String uuid) { + return insertComponentImpl(newView(db.getDefaultOrganization(), uuid), noExtraConfiguration()); + } + + public ComponentDto insertView(OrganizationDto organizationDto, String uuid) { + return insertComponentImpl(newView(organizationDto, uuid), noExtraConfiguration()); + } + + public ComponentDto insertDeveloper(String name, Consumer<ComponentDto> dtoPopulator) { + return insertComponentImpl(newDeveloper(db.getDefaultOrganization(), name), noExtraConfiguration()); + } + + public ComponentDto insertDeveloper(String name) { + return insertComponentImpl(newDeveloper(db.getDefaultOrganization(), name), noExtraConfiguration()); + } + + public ComponentDto insertDeveloper(String name, String uuid) { + return insertComponentImpl(newDeveloper(db.getDefaultOrganization(), name, uuid), noExtraConfiguration()); + } + + private static <T> Consumer<T> noExtraConfiguration() { + return (t) -> {}; + } + + private ComponentDto insertComponentImpl(ComponentDto component, Consumer<ComponentDto> dtoPopulator) { + dtoPopulator.accept(component); + dbClient.componentDao().insert(dbSession, component); db.commit(); - return project; + return component; } public void insertComponents(ComponentDto... components) { diff --git a/sonar-db/src/test/java/org/sonar/db/component/ComponentDtoTest.java b/sonar-db/src/test/java/org/sonar/db/component/ComponentDtoTest.java index 9750500f3c9..875bae24172 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/ComponentDtoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/component/ComponentDtoTest.java @@ -22,6 +22,7 @@ package org.sonar.db.component; import org.junit.Test; import org.sonar.api.resources.Qualifiers; import org.sonar.api.resources.Scopes; +import org.sonar.db.organization.OrganizationTesting; import static org.assertj.core.api.Assertions.assertThat; @@ -92,7 +93,7 @@ public class ComponentDtoTest { @Test public void test_formatUuidPathFromParent() { - ComponentDto parent = ComponentTesting.newProjectDto("123").setUuidPath(ComponentDto.UUID_PATH_OF_ROOT); + ComponentDto parent = ComponentTesting.newProjectDto(OrganizationTesting.newOrganizationDto(), "123").setUuidPath(ComponentDto.UUID_PATH_OF_ROOT); assertThat(ComponentDto.formatUuidPathFromParent(parent)).isEqualTo(".123."); } diff --git a/sonar-db/src/test/java/org/sonar/db/component/ComponentKeyUpdaterDaoTest.java b/sonar-db/src/test/java/org/sonar/db/component/ComponentKeyUpdaterDaoTest.java index 10621fe5a77..c8a433622a2 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/ComponentKeyUpdaterDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/component/ComponentKeyUpdaterDaoTest.java @@ -29,6 +29,7 @@ import org.sonar.api.utils.System2; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.DbTester; +import org.sonar.db.organization.OrganizationDto; import static com.google.common.collect.Lists.newArrayList; import static org.assertj.core.api.Assertions.assertThat; @@ -48,8 +49,6 @@ public class ComponentKeyUpdaterDaoTest { public DbTester db = DbTester.create(System2.INSTANCE); DbClient dbClient = db.getDbClient(); DbSession dbSession = db.getSession(); - ComponentDbTester componentDb = new ComponentDbTester(db); - ComponentKeyUpdaterDao underTest = db.getDbClient().componentKeyUpdaterDao(); @Test @@ -63,11 +62,12 @@ public class ComponentKeyUpdaterDaoTest { @Test public void update_key_does_not_updated_inactive_components() { - ComponentDto project = componentDb.insertComponent(newProjectDto("A").setKey("my_project")); - ComponentDto directory = componentDb.insertComponent(newDirectory(project, "/directory").setKey("my_project:directory")); - componentDb.insertComponent(newFileDto(project, directory).setKey("my_project:directory/file")); - ComponentDto inactiveDirectory = componentDb.insertComponent(newDirectory(project, "/inactive_directory").setKey("my_project:inactive_directory").setEnabled(false)); - componentDb.insertComponent(newFileDto(project, inactiveDirectory).setKey("my_project:inactive_directory/file").setEnabled(false)); + OrganizationDto organizationDto = db.organizations().insert(); + ComponentDto project = db.components().insertComponent(newProjectDto(organizationDto, "A").setKey("my_project")); + ComponentDto directory = db.components().insertComponent(newDirectory(project, "/directory").setKey("my_project:directory")); + db.components().insertComponent(newFileDto(project, directory).setKey("my_project:directory/file")); + ComponentDto inactiveDirectory = db.components().insertComponent(newDirectory(project, "/inactive_directory").setKey("my_project:inactive_directory").setEnabled(false)); + db.components().insertComponent(newFileDto(project, inactiveDirectory).setKey("my_project:inactive_directory/file").setEnabled(false)); underTest.updateKey("A", "your_project"); db.commit(); @@ -89,9 +89,9 @@ public class ComponentKeyUpdaterDaoTest { @Test public void bulk_update_key_does_not_update_inactive_components() { - ComponentDto project = componentDb.insertComponent(newProjectDto("A").setKey("my_project")); - componentDb.insertComponent(newModuleDto(project).setKey("my_project:module")); - componentDb.insertComponent(newModuleDto(project).setKey("my_project:inactive_module").setEnabled(false)); + ComponentDto project = db.components().insertComponent(newProjectDto(db.getDefaultOrganization(), "A").setKey("my_project")); + db.components().insertComponent(newModuleDto(project).setKey("my_project:module")); + db.components().insertComponent(newModuleDto(project).setKey("my_project:inactive_module").setEnabled(false)); underTest.bulkUpdateKey(dbSession, "A", "my_", "your_"); @@ -143,9 +143,10 @@ public class ComponentKeyUpdaterDaoTest { @Test public void fail_with_functional_exception_when_sub_component_key_is_longer_than_authorized() { - ComponentDto project = newProjectDto("project-uuid").setKey("old-project-key"); - componentDb.insertComponent(project); - componentDb.insertComponent(newFileDto(project, null).setKey("old-project-key:file")); + OrganizationDto organizationDto = db.organizations().insert(); + ComponentDto project = newProjectDto(organizationDto, "project-uuid").setKey("old-project-key"); + db.components().insertComponent(project); + db.components().insertComponent(newFileDto(project, null).setKey("old-project-key:file")); String newLongProjectKey = Strings.repeat("a", 400); thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Component key length (405) is longer than the maximum authorized (400). '" + newLongProjectKey + ":file' was provided."); @@ -155,7 +156,7 @@ public class ComponentKeyUpdaterDaoTest { @Test public void fail_when_new_key_is_invalid() { - ComponentDto project = componentDb.insertProject(); + ComponentDto project = db.components().insertProject(); thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Malformed key for 'my?project?key'. Allowed characters are alphanumeric, '-', '_', '.' and ':', with at least one non-digit."); @@ -187,8 +188,9 @@ public class ComponentKeyUpdaterDaoTest { @Test public void check_component_keys_checks_inactive_components() { - componentDb.insertComponent(newProjectDto().setKey("my-project")); - componentDb.insertComponent(newProjectDto().setKey("your-project").setEnabled(false)); + OrganizationDto organizationDto = db.organizations().insert(); + db.components().insertComponent(newProjectDto(organizationDto).setKey("my-project")); + db.components().insertComponent(newProjectDto(organizationDto).setKey("your-project").setEnabled(false)); Map<String, Boolean> result = underTest.checkComponentKeys(dbSession, newArrayList("my-project", "your-project", "new-project")); @@ -210,9 +212,9 @@ public class ComponentKeyUpdaterDaoTest { @Test public void simulate_bulk_update_key_do_not_return_disable_components() { - ComponentDto project = componentDb.insertComponent(newProjectDto("A").setKey("project")); - componentDb.insertComponent(newModuleDto(project).setKey("project:enabled-module")); - componentDb.insertComponent(newModuleDto(project).setKey("project:disabled-module").setEnabled(false)); + ComponentDto project = db.components().insertComponent(newProjectDto(db.getDefaultOrganization(), "A").setKey("project")); + db.components().insertComponent(newModuleDto(project).setKey("project:enabled-module")); + db.components().insertComponent(newModuleDto(project).setKey("project:disabled-module").setEnabled(false)); Map<String, String> result = underTest.simulateBulkUpdateKey(dbSession, "A", "project", "new-project"); @@ -223,9 +225,10 @@ public class ComponentKeyUpdaterDaoTest { @Test public void simulate_bulk_update_key_fails_if_invalid_componentKey() { - ComponentDto project = componentDb.insertComponent(newProjectDto("A").setKey("project")); - componentDb.insertComponent(newModuleDto(project).setKey("project:enabled-module")); - componentDb.insertComponent(newModuleDto(project).setKey("project:disabled-module").setEnabled(false)); + OrganizationDto organizationDto = db.organizations().insert(); + ComponentDto project = db.components().insertComponent(newProjectDto(organizationDto, "A").setKey("project")); + db.components().insertComponent(newModuleDto(project).setKey("project:enabled-module")); + db.components().insertComponent(newModuleDto(project).setKey("project:disabled-module").setEnabled(false)); thrown.expect(IllegalArgumentException.class); diff --git a/sonar-db/src/test/java/org/sonar/db/component/ComponentTesting.java b/sonar-db/src/test/java/org/sonar/db/component/ComponentTesting.java index 178160a3c0e..01230d461c6 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/ComponentTesting.java +++ b/sonar-db/src/test/java/org/sonar/db/component/ComponentTesting.java @@ -95,18 +95,10 @@ public class ComponentTesting { return newProjectDto(organizationDto.getUuid(), Uuids.createFast()); } - public static ComponentDto newProjectDto() { - return newProjectDto(Uuids.createFast(), Uuids.createFast()); - } - public static ComponentDto newProjectDto(OrganizationDto organizationDto, String uuid) { return newProjectDto(organizationDto.getUuid(), uuid); } - public static ComponentDto newProjectDto(String uuid) { - return newProjectDto(Uuids.createFast(), uuid); - } - private static ComponentDto newProjectDto(String organizationUuid, String uuid) { return new ComponentDto() .setOrganizationUuid(organizationUuid) @@ -126,18 +118,10 @@ public class ComponentTesting { .setEnabled(true); } - public static ComponentDto newDeveloper(String name) { - return newDeveloper(Uuids.createFast(), name, Uuids.createFast()); - } - public static ComponentDto newDeveloper(OrganizationDto organizationDto, String name) { return newDeveloper(organizationDto.getUuid(), name, Uuids.createFast()); } - public static ComponentDto newDeveloper(String name, String uuid) { - return newDeveloper(Uuids.createFast(), name, uuid); - } - public static ComponentDto newDeveloper(OrganizationDto organizationDto, String name, String uuid) { return newDeveloper(organizationDto.getUuid(), name, uuid); } @@ -161,18 +145,10 @@ public class ComponentTesting { .setEnabled(true); } - public static ComponentDto newView() { - return newView(Uuids.createFast()); - } - public static ComponentDto newView(OrganizationDto organizationDto) { return newView(organizationDto.getUuid(), Uuids.createFast()); } - public static ComponentDto newView(String uuid) { - return newView(Uuids.createFast(), uuid); - } - public static ComponentDto newView(OrganizationDto organizationDto, String uuid) { return newProjectDto(organizationDto, uuid) .setUuid(uuid) diff --git a/sonar-db/src/test/java/org/sonar/db/component/ComponentTreeQueryTest.java b/sonar-db/src/test/java/org/sonar/db/component/ComponentTreeQueryTest.java index 405f6a5449d..817f2f0ecfd 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/ComponentTreeQueryTest.java +++ b/sonar-db/src/test/java/org/sonar/db/component/ComponentTreeQueryTest.java @@ -25,8 +25,10 @@ import org.junit.rules.ExpectedException; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; +import static org.sonar.db.component.ComponentTesting.newProjectDto; import static org.sonar.db.component.ComponentTreeQuery.Strategy.CHILDREN; import static org.sonar.db.component.ComponentTreeQuery.Strategy.LEAVES; +import static org.sonar.db.organization.OrganizationTesting.newOrganizationDto; public class ComponentTreeQueryTest { @@ -65,10 +67,10 @@ public class ComponentTreeQueryTest { @Test public void test_getUuidPath() throws Exception { assertThat(ComponentTreeQuery.builder().setBaseUuid(BASE_UUID).setStrategy(CHILDREN) - .build().getUuidPath(ComponentTesting.newProjectDto("PROJECT_UUID"))).isEqualTo(".PROJECT_UUID."); + .build().getUuidPath(newProjectDto(newOrganizationDto(), "PROJECT_UUID"))).isEqualTo(".PROJECT_UUID."); assertThat(ComponentTreeQuery.builder().setBaseUuid(BASE_UUID).setStrategy(LEAVES) - .build().getUuidPath(ComponentTesting.newProjectDto("PROJECT_UUID"))).isEqualTo(".PROJECT/_UUID.%"); + .build().getUuidPath(newProjectDto(newOrganizationDto(), "PROJECT_UUID"))).isEqualTo(".PROJECT/_UUID.%"); } @Test diff --git a/sonar-db/src/test/java/org/sonar/db/component/ResourceIndexDaoTest.java b/sonar-db/src/test/java/org/sonar/db/component/ResourceIndexDaoTest.java index 47c09155f04..36bce5b6905 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/ResourceIndexDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/component/ResourceIndexDaoTest.java @@ -146,7 +146,7 @@ public class ResourceIndexDaoTest { @Test public void restrict_indexed_combinations_to_400_characters() { String longName = repeat("a", 2_000); - ComponentDto project = ComponentTesting.newProjectDto(ROOT_UUID) + ComponentDto project = ComponentTesting.newProjectDto(dbTester.getDefaultOrganization(), ROOT_UUID) .setProjectUuid(ROOT_UUID) .setName(longName); DbSession session = dbTester.getSession(); diff --git a/sonar-db/src/test/java/org/sonar/db/component/SnapshotDaoTest.java b/sonar-db/src/test/java/org/sonar/db/component/SnapshotDaoTest.java index be6a98a301c..f7d622198be 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/SnapshotDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/component/SnapshotDaoTest.java @@ -30,6 +30,8 @@ import org.sonar.api.utils.System2; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.DbTester; +import org.sonar.db.organization.OrganizationDto; +import org.sonar.db.organization.OrganizationTesting; import static com.google.common.collect.Lists.newArrayList; import static java.util.Collections.emptyList; @@ -103,9 +105,10 @@ public class SnapshotDaoTest { @Test public void test_selectByIds() { - SnapshotDto snapshot1 = componentDb.insertProjectAndSnapshot(newProjectDto()); - SnapshotDto snapshot2 = componentDb.insertProjectAndSnapshot(newProjectDto()); - SnapshotDto snapshot3 = componentDb.insertProjectAndSnapshot(newProjectDto()); + OrganizationDto organizationDto = db.organizations().insert(); + SnapshotDto snapshot1 = componentDb.insertProjectAndSnapshot(newProjectDto(organizationDto)); + SnapshotDto snapshot2 = componentDb.insertProjectAndSnapshot(newProjectDto(organizationDto)); + SnapshotDto snapshot3 = componentDb.insertProjectAndSnapshot(newProjectDto(organizationDto)); List<SnapshotDto> result = underTest.selectByIds(dbSession, newArrayList(snapshot1.getId(), snapshot2.getId(), snapshot3.getId(), 42L)); @@ -147,12 +150,12 @@ public class SnapshotDaoTest { @Test public void selectLastSnapshotsByRootComponentUuids_returns_snapshots_flagged_as_last() { - ComponentDto firstProject = componentDb.insertComponent(newProjectDto("PROJECT_UUID_1")); + ComponentDto firstProject = componentDb.insertComponent(newProjectDto(db.getDefaultOrganization(), "PROJECT_UUID_1")); dbClient.snapshotDao().insert(dbSession, newAnalysis(firstProject).setLast(false)); SnapshotDto lastSnapshotOfFirstProject = dbClient.snapshotDao().insert(dbSession, newAnalysis(firstProject).setLast(true)); - ComponentDto secondProject = componentDb.insertComponent(newProjectDto("PROJECT_UUID_2")); + ComponentDto secondProject = componentDb.insertComponent(newProjectDto(db.getDefaultOrganization(), "PROJECT_UUID_2")); SnapshotDto lastSnapshotOfSecondProject = dbClient.snapshotDao().insert(dbSession, newAnalysis(secondProject).setLast(true)); - componentDb.insertProjectAndSnapshot(newProjectDto()); + componentDb.insertProjectAndSnapshot(newProjectDto(db.getDefaultOrganization())); List<SnapshotDto> result = underTest.selectLastAnalysesByRootComponentUuids(dbSession, newArrayList(firstProject.uuid(), secondProject.uuid())); @@ -207,7 +210,7 @@ public class SnapshotDaoTest { @Test public void select_first_snapshots() throws Exception { - ComponentDto project = ComponentTesting.newProjectDto(); + ComponentDto project = ComponentTesting.newProjectDto(db.getDefaultOrganization()); db.getDbClient().componentDao().insert(dbSession, project); db.getDbClient().snapshotDao().insert(dbSession, @@ -316,7 +319,7 @@ public class SnapshotDaoTest { } private SnapshotDto insertAnalysis(String projectUuid, String uuid, String status, boolean isLastFlag) { - SnapshotDto snapshot = SnapshotTesting.newAnalysis(ComponentTesting.newProjectDto(projectUuid)) + SnapshotDto snapshot = SnapshotTesting.newAnalysis(ComponentTesting.newProjectDto(OrganizationTesting.newOrganizationDto(), projectUuid)) .setLast(isLastFlag) .setStatus(status) .setUuid(uuid); diff --git a/sonar-db/src/test/java/org/sonar/db/event/EventDaoTest.java b/sonar-db/src/test/java/org/sonar/db/event/EventDaoTest.java index 1d3c1138878..02d79ad64d0 100644 --- a/sonar-db/src/test/java/org/sonar/db/event/EventDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/event/EventDaoTest.java @@ -43,14 +43,15 @@ public class EventDaoTest { public ExpectedException expectedException = ExpectedException.none(); @Rule public DbTester dbTester = DbTester.create(System2.INSTANCE); + private DbClient dbClient = dbTester.getDbClient(); private DbSession dbSession = dbTester.getSession(); - EventDao underTest = dbTester.getDbClient().eventDao(); + private EventDao underTest = dbTester.getDbClient().eventDao(); @Test public void select_by_uuid() { - SnapshotDto analysis = newAnalysis(newProjectDto()); + SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(newProjectDto(dbTester.organizations().insert())); dbTester.events().insertEvent(newEvent(analysis).setUuid("A1")); dbTester.events().insertEvent(newEvent(analysis).setUuid("A2")); dbTester.events().insertEvent(newEvent(analysis).setUuid("A3")); @@ -86,7 +87,7 @@ public class EventDaoTest { @Test public void select_by_analysis_uuid() { - ComponentDto project = newProjectDto(); + ComponentDto project = newProjectDto(dbTester.getDefaultOrganization()); SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(project); SnapshotDto otherAnalysis = dbClient.snapshotDao().insert(dbSession, newAnalysis(project)); dbTester.commit(); @@ -155,7 +156,7 @@ public class EventDaoTest { @Test public void update_name_and_description() { - SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(newProjectDto()); + SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(newProjectDto(dbTester.organizations().insert())); dbTester.events().insertEvent(newEvent(analysis).setUuid("E1")); underTest.update(dbSession, "E1", "New Name", "New Description"); @@ -177,7 +178,7 @@ public class EventDaoTest { @Test public void delete_by_uuid() { - dbTester.events().insertEvent(newEvent(newAnalysis(newProjectDto())).setUuid("E1")); + dbTester.events().insertEvent(newEvent(newAnalysis(newProjectDto(dbTester.getDefaultOrganization()))).setUuid("E1")); underTest.delete(dbTester.getSession(), "E1"); dbTester.commit(); diff --git a/sonar-db/src/test/java/org/sonar/db/issue/IssueDaoTest.java b/sonar-db/src/test/java/org/sonar/db/issue/IssueDaoTest.java index 82baa486078..1bb4731e1b1 100644 --- a/sonar-db/src/test/java/org/sonar/db/issue/IssueDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/issue/IssueDaoTest.java @@ -29,6 +29,7 @@ import org.sonar.db.DbTester; import org.sonar.db.RowNotFoundException; import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentTesting; +import org.sonar.db.organization.OrganizationDto; import org.sonar.db.rule.RuleDto; import org.sonar.db.rule.RuleTesting; @@ -37,18 +38,20 @@ import static org.assertj.core.api.Assertions.assertThat; public class IssueDaoTest { - public static final RuleDto RULE = RuleTesting.newXooX1(); - public static final ComponentDto PROJECT = ComponentTesting.newProjectDto(); - public static final ComponentDto FILE = ComponentTesting.newFileDto(PROJECT, null); - public static final String ISSUE_KEY1 = "I1"; - public static final String ISSUE_KEY2 = "I2"; + private static final String PROJECT_UUID = "prj_uuid"; + private static final String PROJECT_KEY = "prj_key"; + private static final String FILE_UUID = "file_uuid"; + private static final String FILE_KEY = "file_key"; + private static final RuleDto RULE = RuleTesting.newXooX1(); + private static final String ISSUE_KEY1 = "I1"; + private static final String ISSUE_KEY2 = "I2"; @Rule public ExpectedException thrown = ExpectedException.none(); - @Rule public DbTester dbTester = DbTester.create(System2.INSTANCE); - IssueDao underTest = dbTester.getDbClient().issueDao(); + + private IssueDao underTest = dbTester.getDbClient().issueDao(); @Test public void selectByKeyOrFail() { @@ -57,8 +60,8 @@ public class IssueDaoTest { IssueDto issue = underTest.selectOrFailByKey(dbTester.getSession(), ISSUE_KEY1); assertThat(issue.getKee()).isEqualTo(ISSUE_KEY1); assertThat(issue.getId()).isGreaterThan(0L); - assertThat(issue.getComponentUuid()).isEqualTo(FILE.uuid()); - assertThat(issue.getProjectUuid()).isEqualTo(PROJECT.uuid()); + assertThat(issue.getComponentUuid()).isEqualTo(FILE_UUID); + assertThat(issue.getProjectUuid()).isEqualTo(PROJECT_UUID); assertThat(issue.getRuleId()).isEqualTo(RULE.getId()); assertThat(issue.getLanguage()).isEqualTo(RULE.getLanguage()); assertThat(issue.getSeverity()).isEqualTo("BLOCKER"); @@ -81,8 +84,8 @@ public class IssueDaoTest { assertThat(issue.getUpdatedAt()).isEqualTo(1_440_000_000_000L); assertThat(issue.getRuleRepo()).isEqualTo(RULE.getRepositoryKey()); assertThat(issue.getRule()).isEqualTo(RULE.getRuleKey()); - assertThat(issue.getComponentKey()).isEqualTo(FILE.key()); - assertThat(issue.getProjectKey()).isEqualTo(PROJECT.key()); + assertThat(issue.getComponentKey()).isEqualTo(FILE_KEY); + assertThat(issue.getProjectKey()).isEqualTo(PROJECT_KEY); assertThat(issue.getLocations()).isNull(); assertThat(issue.parseLocations()).isNull(); } @@ -147,16 +150,18 @@ public class IssueDaoTest { private void prepareTables() { dbTester.getDbClient().ruleDao().insert(dbTester.getSession(), RULE); - dbTester.getDbClient().componentDao().insert(dbTester.getSession(), PROJECT, FILE); + OrganizationDto organizationDto = dbTester.organizations().insert(); + ComponentDto projectDto = dbTester.components().insertProject(organizationDto, (t) -> t.setUuid(PROJECT_UUID).setKey(PROJECT_KEY)); + dbTester.components().insertComponent(ComponentTesting.newFileDto(projectDto).setUuid(FILE_UUID).setKey(FILE_KEY)); underTest.insert(dbTester.getSession(), newIssueDto(ISSUE_KEY1) .setMessage("the message") .setRuleId(RULE.getId()) - .setComponentUuid(FILE.uuid()) - .setProjectUuid(PROJECT.uuid())); + .setComponentUuid(FILE_UUID) + .setProjectUuid(PROJECT_UUID)); underTest.insert(dbTester.getSession(), newIssueDto(ISSUE_KEY2) .setRuleId(RULE.getId()) - .setComponentUuid(FILE.uuid()) - .setProjectUuid(PROJECT.uuid())); + .setComponentUuid(FILE_UUID) + .setProjectUuid(PROJECT_UUID)); dbTester.getSession().commit(); } } diff --git a/sonar-db/src/test/java/org/sonar/db/issue/IssueMapperTest.java b/sonar-db/src/test/java/org/sonar/db/issue/IssueMapperTest.java index 3b3e7b13766..93218789c00 100644 --- a/sonar-db/src/test/java/org/sonar/db/issue/IssueMapperTest.java +++ b/sonar-db/src/test/java/org/sonar/db/issue/IssueMapperTest.java @@ -27,6 +27,7 @@ import org.sonar.db.DbSession; import org.sonar.db.DbTester; import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentTesting; +import org.sonar.db.organization.OrganizationDto; import org.sonar.db.rule.RuleDto; import org.sonar.db.rule.RuleTesting; @@ -46,7 +47,8 @@ public class IssueMapperTest { @Before public void setUp() throws Exception { - project = ComponentTesting.newProjectDto(); + OrganizationDto organizationDto = dbTester.organizations().insert(); + project = ComponentTesting.newProjectDto(organizationDto); dbTester.getDbClient().componentDao().insert(dbSession, project); file = ComponentTesting.newFileDto(project, null); dbTester.getDbClient().componentDao().insert(dbSession, file); diff --git a/sonar-db/src/test/java/org/sonar/db/measure/MeasureDaoTest.java b/sonar-db/src/test/java/org/sonar/db/measure/MeasureDaoTest.java index 31d8e8bd986..4fb8fb3b8d3 100644 --- a/sonar-db/src/test/java/org/sonar/db/measure/MeasureDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/measure/MeasureDaoTest.java @@ -33,6 +33,7 @@ import org.sonar.core.util.UuidFactoryImpl; import org.sonar.db.DbTester; import org.sonar.db.component.ComponentDto; import org.sonar.db.component.SnapshotTesting; +import org.sonar.db.organization.OrganizationDto; import static java.util.Arrays.asList; import static java.util.Collections.emptyList; @@ -324,7 +325,8 @@ public class MeasureDaoTest { @Test public void selectProjectMeasuresOfDeveloper() { - ComponentDto dev = db.components().insertComponent(newDeveloper("DEV")); + OrganizationDto organizationDto = db.organizations().insert(); + ComponentDto dev = db.components().insertComponent(newDeveloper(organizationDto, "DEV")); insertAnalysis(LAST_ANALYSIS_UUID, dev.uuid(), true); insertAnalysis(PREVIOUS_ANALYSIS_UUID, dev.uuid(), false); List<Integer> allMetricIds = Arrays.asList(NCLOC_METRIC_ID, COMPLEXITY_METRIC_ID, COVERAGE_METRIC_ID); diff --git a/sonar-db/src/test/java/org/sonar/db/measure/MeasureTreeQueryTest.java b/sonar-db/src/test/java/org/sonar/db/measure/MeasureTreeQueryTest.java index 9975ac99043..3620cd3cc7b 100644 --- a/sonar-db/src/test/java/org/sonar/db/measure/MeasureTreeQueryTest.java +++ b/sonar-db/src/test/java/org/sonar/db/measure/MeasureTreeQueryTest.java @@ -25,6 +25,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonar.db.component.ComponentTesting; +import org.sonar.db.organization.OrganizationTesting; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; @@ -81,10 +82,10 @@ public class MeasureTreeQueryTest { @Test public void test_getUuidPath() throws Exception { assertThat(MeasureTreeQuery.builder().setStrategy(CHILDREN) - .build().getUuidPath(ComponentTesting.newProjectDto("PROJECT_UUID"))).isEqualTo(".PROJECT_UUID."); + .build().getUuidPath(ComponentTesting.newProjectDto(OrganizationTesting.newOrganizationDto(), "PROJECT_UUID"))).isEqualTo(".PROJECT_UUID."); assertThat(MeasureTreeQuery.builder().setStrategy(LEAVES) - .build().getUuidPath(ComponentTesting.newProjectDto("PROJECT_UUID"))).isEqualTo(".PROJECT/_UUID.%"); + .build().getUuidPath(ComponentTesting.newProjectDto(OrganizationTesting.newOrganizationDto(), "PROJECT_UUID"))).isEqualTo(".PROJECT/_UUID.%"); } @Test diff --git a/sonar-db/src/test/java/org/sonar/db/measure/ProjectMeasuresIndexerIteratorTest.java b/sonar-db/src/test/java/org/sonar/db/measure/ProjectMeasuresIndexerIteratorTest.java index fb905140373..20fe471ceb1 100644 --- a/sonar-db/src/test/java/org/sonar/db/measure/ProjectMeasuresIndexerIteratorTest.java +++ b/sonar-db/src/test/java/org/sonar/db/measure/ProjectMeasuresIndexerIteratorTest.java @@ -31,12 +31,12 @@ import org.sonar.api.utils.System2; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.DbTester; -import org.sonar.db.component.ComponentDbTester; import org.sonar.db.component.ComponentDto; import org.sonar.db.component.SnapshotDto; import org.sonar.db.measure.ProjectMeasuresIndexerIterator.ProjectMeasures; import org.sonar.db.metric.MetricDto; import org.sonar.db.metric.MetricTesting; +import org.sonar.db.organization.OrganizationDto; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.entry; @@ -55,21 +55,18 @@ public class ProjectMeasuresIndexerIteratorTest { @Rule public ExpectedException expectedException = ExpectedException.none(); - @Rule public DbTester dbTester = DbTester.create(System2.INSTANCE); - DbClient dbClient = dbTester.getDbClient(); - DbSession dbSession = dbTester.getSession(); - - ComponentDbTester componentDbTester = new ComponentDbTester(dbTester); + private DbClient dbClient = dbTester.getDbClient(); + private DbSession dbSession = dbTester.getSession(); @Test public void return_project_measure() { MetricDto metric1 = insertIntMetric("ncloc"); MetricDto metric2 = insertIntMetric("coverage"); - ComponentDto project = newProjectDto().setKey("Project-Key").setName("Project Name"); - SnapshotDto analysis = componentDbTester.insertProjectAndSnapshot(project); + ComponentDto project = newProjectDto(dbTester.getDefaultOrganization()).setKey("Project-Key").setName("Project Name"); + SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(project); insertMeasure(project, analysis, metric1, 10d); insertMeasure(project, analysis, metric2, 20d); @@ -88,8 +85,8 @@ public class ProjectMeasuresIndexerIteratorTest { @Test public void return_project_measure_having_leak() throws Exception { MetricDto metric = insertIntMetric("new_lines"); - ComponentDto project = newProjectDto(); - SnapshotDto analysis = componentDbTester.insertProjectAndSnapshot(project); + ComponentDto project = newProjectDto(dbTester.getDefaultOrganization()); + SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(project); insertMeasureOnLeak(project, analysis, metric, 10d); Map<String, ProjectMeasures> docsById = createResultSetAndReturnDocsById(); @@ -100,8 +97,8 @@ public class ProjectMeasuresIndexerIteratorTest { @Test public void return_quality_gate_status_measure() throws Exception { MetricDto metric = insertMetric("alert_status", LEVEL); - ComponentDto project = newProjectDto(); - SnapshotDto analysis = componentDbTester.insertProjectAndSnapshot(project); + ComponentDto project = newProjectDto(dbTester.getDefaultOrganization()); + SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(project); insertMeasure(project, analysis, metric, WARN.name()); Map<String, ProjectMeasures> docsById = createResultSetAndReturnDocsById(); @@ -112,8 +109,8 @@ public class ProjectMeasuresIndexerIteratorTest { @Test public void does_not_fail_when_quality_gate_has_no_value() throws Exception { MetricDto metric = insertMetric("alert_status", LEVEL); - ComponentDto project = newProjectDto(); - SnapshotDto analysis = componentDbTester.insertProjectAndSnapshot(project); + ComponentDto project = newProjectDto(dbTester.getDefaultOrganization()); + SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(project); insertMeasure(project, analysis, metric, null); Map<String, ProjectMeasures> docsById = createResultSetAndReturnDocsById(); @@ -126,8 +123,8 @@ public class ProjectMeasuresIndexerIteratorTest { MetricDto dataMetric = insertMetric("data", DATA); MetricDto distribMetric = insertMetric("distrib", DISTRIB); MetricDto stringMetric = insertMetric("string", STRING); - ComponentDto project = newProjectDto(); - SnapshotDto analysis = componentDbTester.insertProjectAndSnapshot(project); + ComponentDto project = newProjectDto(dbTester.getDefaultOrganization()); + SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(project); insertMeasure(project, analysis, dataMetric, "dat"); insertMeasure(project, analysis, distribMetric, "dis"); insertMeasure(project, analysis, stringMetric, "str"); @@ -140,8 +137,8 @@ public class ProjectMeasuresIndexerIteratorTest { @Test public void does_not_return_disabled_metrics() throws Exception { MetricDto disabledMetric = insertMetric("disabled", false, false, INT); - ComponentDto project = newProjectDto(); - SnapshotDto analysis = componentDbTester.insertProjectAndSnapshot(project); + ComponentDto project = newProjectDto(dbTester.getDefaultOrganization()); + SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(project); insertMeasure(project, analysis, disabledMetric, 10d); Map<String, ProjectMeasures> docsById = createResultSetAndReturnDocsById(); @@ -152,8 +149,8 @@ public class ProjectMeasuresIndexerIteratorTest { @Test public void fail_when_measure_return_no_value() throws Exception { MetricDto metric = insertIntMetric("new_lines"); - ComponentDto project = newProjectDto(); - SnapshotDto analysis = componentDbTester.insertProjectAndSnapshot(project); + ComponentDto project = newProjectDto(dbTester.getDefaultOrganization()); + SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(project); insertMeasure(project, analysis, metric, 10d); expectedException.expect(IllegalStateException.class); @@ -162,16 +159,16 @@ public class ProjectMeasuresIndexerIteratorTest { @Test public void return_many_project_measures() { - componentDbTester.insertProjectAndSnapshot(newProjectDto()); - componentDbTester.insertProjectAndSnapshot(newProjectDto()); - componentDbTester.insertProjectAndSnapshot(newProjectDto()); + dbTester.components().insertProjectAndSnapshot(newProjectDto(dbTester.getDefaultOrganization())); + dbTester.components().insertProjectAndSnapshot(newProjectDto(dbTester.getDefaultOrganization())); + dbTester.components().insertProjectAndSnapshot(newProjectDto(dbTester.getDefaultOrganization())); assertThat(createResultSetAndReturnDocsById()).hasSize(3); } @Test public void return_project_without_analysis() throws Exception { - ComponentDto project = componentDbTester.insertComponent(newProjectDto()); + ComponentDto project = dbTester.components().insertComponent(newProjectDto(dbTester.organizations().insert())); dbClient.snapshotDao().insert(dbSession, newAnalysis(project).setLast(false)); dbSession.commit(); @@ -185,16 +182,16 @@ public class ProjectMeasuresIndexerIteratorTest { @Test public void does_not_return_non_active_projects() throws Exception { // Disabled project - componentDbTester.insertProjectAndSnapshot(newProjectDto().setEnabled(false)); + dbTester.components().insertProjectAndSnapshot(newProjectDto(dbTester.getDefaultOrganization()).setEnabled(false)); // Disabled project with analysis - ComponentDto project = componentDbTester.insertComponent(newProjectDto().setEnabled(false)); + ComponentDto project = dbTester.components().insertComponent(newProjectDto(dbTester.getDefaultOrganization()).setEnabled(false)); dbClient.snapshotDao().insert(dbSession, newAnalysis(project)); // A view - componentDbTester.insertProjectAndSnapshot(newView()); + dbTester.components().insertProjectAndSnapshot(newView(dbTester.getDefaultOrganization())); // A developer - componentDbTester.insertProjectAndSnapshot(newDeveloper("dev")); + dbTester.components().insertProjectAndSnapshot(newDeveloper(dbTester.getDefaultOrganization(), "dev")); dbSession.commit(); @@ -203,10 +200,11 @@ public class ProjectMeasuresIndexerIteratorTest { @Test public void return_only_docs_from_given_project() throws Exception { - ComponentDto project = newProjectDto(); - SnapshotDto analysis = componentDbTester.insertProjectAndSnapshot(project); - componentDbTester.insertProjectAndSnapshot(newProjectDto()); - componentDbTester.insertProjectAndSnapshot(newProjectDto()); + OrganizationDto organizationDto = dbTester.organizations().insert(); + ComponentDto project = newProjectDto(organizationDto); + SnapshotDto analysis = dbTester.components().insertProjectAndSnapshot(project); + dbTester.components().insertProjectAndSnapshot(newProjectDto(organizationDto)); + dbTester.components().insertProjectAndSnapshot(newProjectDto(organizationDto)); Map<String, ProjectMeasures> docsById = createResultSetAndReturnDocsById(0L, project.uuid()); @@ -221,10 +219,11 @@ public class ProjectMeasuresIndexerIteratorTest { @Test public void return_only_docs_after_date() throws Exception { - ComponentDto project1 = newProjectDto(); + OrganizationDto organizationDto = dbTester.organizations().insert(); + ComponentDto project1 = newProjectDto(organizationDto); dbClient.componentDao().insert(dbSession, project1); dbClient.snapshotDao().insert(dbSession, newAnalysis(project1).setCreatedAt(1_000_000L)); - ComponentDto project2 = newProjectDto(); + ComponentDto project2 = newProjectDto(organizationDto); dbClient.componentDao().insert(dbSession, project2); dbClient.snapshotDao().insert(dbSession, newAnalysis(project2).setCreatedAt(2_000_000L)); dbSession.commit(); @@ -237,7 +236,7 @@ public class ProjectMeasuresIndexerIteratorTest { @Test public void return_nothing_on_unknown_project() throws Exception { - componentDbTester.insertProjectAndSnapshot(newProjectDto()); + dbTester.components().insertProjectAndSnapshot(newProjectDto(dbTester.getDefaultOrganization())); Map<String, ProjectMeasures> docsById = createResultSetAndReturnDocsById(0L, "UNKNOWN"); diff --git a/sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java b/sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java index 7de85e0808f..2ae7ec72b25 100644 --- a/sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java @@ -129,7 +129,7 @@ public class GroupPermissionDaoTest { GroupDto group2 = addGroupOnDefaultOrganization("Group-2"); GroupDto group3 = addGroupOnDefaultOrganization("Group-3"); - ComponentDto project = db.components().insertComponent(newProjectDto()); + ComponentDto project = db.components().insertComponent(newProjectDto(db.getDefaultOrganization())); db.users().insertPermissionOnAnyone(SCAN_EXECUTION); db.users().insertPermissionOnAnyone(PROVISIONING); @@ -205,11 +205,13 @@ public class GroupPermissionDaoTest { @Test public void selectByGroupIds_on_global_permissions() { + OrganizationDto organizationDto = db.organizations().insert(); + GroupDto group1 = addGroupOnDefaultOrganization("Group-1"); db.users().insertPermissionOnGroup(group1, SCAN_EXECUTION); GroupDto group2 = addGroupOnDefaultOrganization("Group-2"); - ComponentDto project = db.components().insertComponent(newProjectDto()); + ComponentDto project = db.components().insertComponent(newProjectDto(organizationDto)); db.users().insertProjectPermissionOnGroup(group2, UserRole.ADMIN, project); GroupDto group3 = addGroupOnDefaultOrganization("Group-3"); @@ -246,7 +248,7 @@ public class GroupPermissionDaoTest { db.users().insertPermissionOnGroup(group1, PROVISIONING); GroupDto group2 = addGroupOnDefaultOrganization("Group-2"); - ComponentDto project = db.components().insertComponent(newProjectDto()); + ComponentDto project = db.components().insertComponent(newProjectDto(db.getDefaultOrganization())); db.users().insertProjectPermissionOnGroup(group2, USER, project); GroupDto group3 = addGroupOnDefaultOrganization("Group-3"); diff --git a/sonar-db/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java b/sonar-db/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java index eac366b339c..186fc7e3fb4 100644 --- a/sonar-db/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java @@ -41,7 +41,6 @@ import static org.sonar.api.web.UserRole.ISSUE_ADMIN; import static org.sonar.api.web.UserRole.USER; import static org.sonar.core.permission.GlobalPermissions.PROVISIONING; import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN; -import static org.sonar.db.component.ComponentTesting.newProjectDto; import static org.sonar.db.organization.OrganizationTesting.newOrganizationDto; import static org.sonar.db.user.UserTesting.newUserDto; @@ -54,8 +53,8 @@ public class UserPermissionDaoTest { private UserDto user1 = newUserDto().setLogin("login1").setName("Marius").setActive(true); private UserDto user2 = newUserDto().setLogin("login2").setName("Marie").setActive(true); private UserDto user3 = newUserDto().setLogin("login3").setName("Bernard").setActive(true); - private ComponentDto project1 = newProjectDto(); - private ComponentDto project2 = newProjectDto(); + private ComponentDto project1; + private ComponentDto project2; private DbSession dbSession = dbTester.getSession(); @Before @@ -64,8 +63,9 @@ public class UserPermissionDaoTest { dbClient.userDao().insert(dbSession, user1); dbClient.userDao().insert(dbSession, user2); dbClient.userDao().insert(dbSession, user3); - dbClient.componentDao().insert(dbSession, project1); - dbClient.componentDao().insert(dbSession, project2); + OrganizationDto organizationDto = dbTester.organizations().insert(); + project1 = dbTester.components().insertProject(organizationDto); + project2 = dbTester.components().insertProject(organizationDto); dbTester.commit(); } diff --git a/sonar-db/src/test/java/org/sonar/db/property/PropertiesDaoTest.java b/sonar-db/src/test/java/org/sonar/db/property/PropertiesDaoTest.java index c177eeadbe6..0f21f67b784 100644 --- a/sonar-db/src/test/java/org/sonar/db/property/PropertiesDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/property/PropertiesDaoTest.java @@ -40,6 +40,7 @@ import org.sonar.db.DbSession; import org.sonar.db.DbTester; import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentTesting; +import org.sonar.db.organization.OrganizationTesting; import org.sonar.db.user.UserDto; import org.sonar.db.user.UserTesting; @@ -335,7 +336,7 @@ public class PropertiesDaoTest { @UseDataProvider("allValuesForSelect") public void selectEnabledDescendantModuleProperties_supports_all_values(String dbValue, String expected) throws SQLException { String projectUuid = "A"; - ComponentDto project = ComponentTesting.newProjectDto(projectUuid); + ComponentDto project = ComponentTesting.newProjectDto(OrganizationTesting.newOrganizationDto(), projectUuid); dbClient.componentDao().insert(session, project); long projectId = project.getId(); insertProperty("project.one", dbValue, projectId, null); @@ -401,10 +402,8 @@ public class PropertiesDaoTest { @Test public void select_component_properties_by_keys() throws Exception { - ComponentDto project = ComponentTesting.newProjectDto(); - dbClient.componentDao().insert(session, project); - UserDto user = UserTesting.newUserDto(); - dbClient.userDao().insert(session, user); + ComponentDto project = dbTester.components().insertProject(); + UserDto user = dbTester.users().insertUser(); String key = "key"; String anotherKey = "anotherKey"; @@ -424,10 +423,8 @@ public class PropertiesDaoTest { @Test public void select_component_properties_by_ids() throws Exception { - ComponentDto project = ComponentTesting.newProjectDto(); - dbClient.componentDao().insert(session, project); - ComponentDto project2 = ComponentTesting.newProjectDto(); - dbClient.componentDao().insert(session, project2); + ComponentDto project = dbTester.components().insertProject(); + ComponentDto project2 = dbTester.components().insertProject(); UserDto user = UserTesting.newUserDto(); dbClient.userDao().insert(session, user); @@ -455,10 +452,8 @@ public class PropertiesDaoTest { @Test public void select_properties_by_keys_and_component_ids() throws Exception { - ComponentDto project = ComponentTesting.newProjectDto(); - dbClient.componentDao().insert(session, project); - ComponentDto project2 = ComponentTesting.newProjectDto(); - dbClient.componentDao().insert(session, project2); + ComponentDto project = dbTester.components().insertProject(); + ComponentDto project2 = dbTester.components().insertProject(); UserDto user = UserTesting.newUserDto(); dbClient.userDao().insert(session, user); @@ -1014,7 +1009,7 @@ public class PropertiesDaoTest { private ComponentDto insertProject(String uuid) { String key = "project" + uuid; - ComponentDto project = ComponentTesting.newProjectDto(uuid).setKey(key); + ComponentDto project = ComponentTesting.newProjectDto(dbTester.getDefaultOrganization(), uuid).setKey(key); dbClient.componentDao().insert(session, project); dbTester.commit(); return project; diff --git a/sonar-db/src/test/java/org/sonar/db/purge/PurgeDaoTest.java b/sonar-db/src/test/java/org/sonar/db/purge/PurgeDaoTest.java index b73b4e52c20..1bb29af9a51 100644 --- a/sonar-db/src/test/java/org/sonar/db/purge/PurgeDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/purge/PurgeDaoTest.java @@ -139,8 +139,8 @@ public class PurgeDaoTest { @Test public void delete_project_in_ce_activity_when_deleting_project() { - ComponentDto projectToBeDeleted = ComponentTesting.newProjectDto(); - ComponentDto anotherLivingProject = ComponentTesting.newProjectDto(); + ComponentDto projectToBeDeleted = ComponentTesting.newProjectDto(dbTester.getDefaultOrganization()); + ComponentDto anotherLivingProject = ComponentTesting.newProjectDto(dbTester.getDefaultOrganization()); dbClient.componentDao().insert(dbSession, projectToBeDeleted, anotherLivingProject); // Insert 2 rows in CE_ACTIVITY : one for the project that will be deleted, and on on another project diff --git a/sonar-db/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java b/sonar-db/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java index 220620323e0..f4b5acfed92 100644 --- a/sonar-db/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java @@ -91,7 +91,7 @@ public class ProjectQgateAssociationDaoTest { @Test public void select_qgate_id_is_absent() { - ComponentDto project = componentDb.insertComponent(newProjectDto()); + ComponentDto project = componentDb.insertComponent(newProjectDto(db.getDefaultOrganization())); Optional<Long> result = underTest.selectQGateIdByComponentId(dbSession, project.getId()); diff --git a/sonar-db/src/test/java/org/sonar/db/qualityprofile/QualityProfileDaoTest.java b/sonar-db/src/test/java/org/sonar/db/qualityprofile/QualityProfileDaoTest.java index d9bcf4d278f..110e4045282 100644 --- a/sonar-db/src/test/java/org/sonar/db/qualityprofile/QualityProfileDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/qualityprofile/QualityProfileDaoTest.java @@ -30,7 +30,6 @@ import org.sonar.db.DbSession; import org.sonar.db.DbTester; import org.sonar.db.component.ComponentDbTester; import org.sonar.db.component.ComponentDto; -import org.sonar.db.component.ComponentTesting; import static com.google.common.collect.ImmutableList.of; import static com.google.common.collect.Lists.newArrayList; @@ -40,7 +39,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.tuple; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import static org.sonar.db.component.ComponentTesting.newProjectDto; import static org.sonar.db.qualityprofile.QualityProfileTesting.newQualityProfileDto; public class QualityProfileDaoTest { @@ -300,9 +298,9 @@ public class QualityProfileDaoTest { @Test public void select_selected_projects() throws Exception { - ComponentDto project1 = componentDbTester.insertComponent(newProjectDto().setName("Project1 name")); - ComponentDto project2 = componentDbTester.insertComponent(newProjectDto().setName("Project2 name")); - ComponentDto project3 = componentDbTester.insertComponent(newProjectDto().setName("Project3 name")); + ComponentDto project1 = componentDbTester.insertProject((t) -> t.setName("Project1 name")); + ComponentDto project2 = componentDbTester.insertProject((t) -> t.setName("Project2 name")); + ComponentDto project3 = componentDbTester.insertProject((t) -> t.setName("Project3 name")); QualityProfileDto profile1 = newQualityProfileDto(); qualityProfileDb.insertQualityProfiles(profile1); @@ -326,9 +324,9 @@ public class QualityProfileDaoTest { @Test public void select_deselected_projects() throws Exception { - ComponentDto project1 = componentDbTester.insertComponent(newProjectDto().setName("Project1 name")); - ComponentDto project2 = componentDbTester.insertComponent(newProjectDto().setName("Project2 name")); - ComponentDto project3 = componentDbTester.insertComponent(newProjectDto().setName("Project3 name")); + ComponentDto project1 = componentDbTester.insertProject((t) -> t.setName("Project1 name")); + ComponentDto project2 = componentDbTester.insertProject((t) -> t.setName("Project2 name")); + ComponentDto project3 = componentDbTester.insertProject((t) -> t.setName("Project3 name")); QualityProfileDto profile1 = newQualityProfileDto(); qualityProfileDb.insertQualityProfiles(profile1); @@ -351,9 +349,9 @@ public class QualityProfileDaoTest { @Test public void select_project_associations() throws Exception { - ComponentDto project1 = componentDbTester.insertComponent(newProjectDto().setName("Project1 name")); - ComponentDto project2 = componentDbTester.insertComponent(newProjectDto().setName("Project2 name")); - ComponentDto project3 = componentDbTester.insertComponent(newProjectDto().setName("Project3 name")); + ComponentDto project1 = componentDbTester.insertProject((t) -> t.setName("Project1 name")); + ComponentDto project2 = componentDbTester.insertProject((t) -> t.setName("Project2 name")); + ComponentDto project3 = componentDbTester.insertProject((t) -> t.setName("Project3 name")); QualityProfileDto profile1 = newQualityProfileDto(); qualityProfileDb.insertQualityProfiles(profile1); @@ -377,7 +375,7 @@ public class QualityProfileDaoTest { @Test public void update_project_profile_association() { - ComponentDto project = componentDbTester.insertComponent(ComponentTesting.newProjectDto()); + ComponentDto project = componentDbTester.insertProject(); QualityProfileDto profile1Language1 = insertQualityProfileDto("profile1", "Profile 1", "xoo"); QualityProfileDto profile2Language2 = insertQualityProfileDto("profile2", "Profile 2", "xoo2"); QualityProfileDto profile3Language1 = insertQualityProfileDto("profile3", "Profile 3", "xoo"); diff --git a/sonar-db/src/test/resources/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest/schema.sql b/sonar-db/src/test/resources/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest/schema.sql index a76ee8b9535..678afc9442f 100644 --- a/sonar-db/src/test/resources/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest/schema.sql +++ b/sonar-db/src/test/resources/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest/schema.sql @@ -1,3 +1,16 @@ +CREATE TABLE "ORGANIZATIONS" ( + "UUID" VARCHAR(40) NOT NULL PRIMARY KEY, + "KEE" VARCHAR(32) NOT NULL, + "NAME" VARCHAR(64) NOT NULL, + "DESCRIPTION" VARCHAR(256), + "URL" VARCHAR(256), + "AVATAR_URL" VARCHAR(256), + "CREATED_AT" BIGINT NOT NULL, + "UPDATED_AT" BIGINT NOT NULL +); +CREATE UNIQUE INDEX "PK_ORGANIZATIONS" ON "ORGANIZATIONS" ("UUID"); +CREATE UNIQUE INDEX "ORGANIZATION_KEY" ON "ORGANIZATIONS" ("KEE"); + CREATE TABLE "PROJECTS" ( "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), "KEE" VARCHAR(400), |