aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-db
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-01-11 18:48:03 +0100
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-01-16 11:38:43 +0100
commit299ea02a3f54012671fd4aea75c31104891a4a84 (patch)
treeec80a2a34179a845a738a06361ceac1e0ae106de /sonar-db
parent9312e5a69389a7560267d0c30e606d1119ef02c5 (diff)
downloadsonarqube-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')
-rw-r--r--sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java49
-rw-r--r--sonar-db/src/test/java/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest.java10
-rw-r--r--sonar-db/src/test/java/org/sonar/db/component/ComponentDbTester.java69
-rw-r--r--sonar-db/src/test/java/org/sonar/db/component/ComponentDtoTest.java3
-rw-r--r--sonar-db/src/test/java/org/sonar/db/component/ComponentKeyUpdaterDaoTest.java47
-rw-r--r--sonar-db/src/test/java/org/sonar/db/component/ComponentTesting.java24
-rw-r--r--sonar-db/src/test/java/org/sonar/db/component/ComponentTreeQueryTest.java6
-rw-r--r--sonar-db/src/test/java/org/sonar/db/component/ResourceIndexDaoTest.java2
-rw-r--r--sonar-db/src/test/java/org/sonar/db/component/SnapshotDaoTest.java19
-rw-r--r--sonar-db/src/test/java/org/sonar/db/event/EventDaoTest.java11
-rw-r--r--sonar-db/src/test/java/org/sonar/db/issue/IssueDaoTest.java37
-rw-r--r--sonar-db/src/test/java/org/sonar/db/issue/IssueMapperTest.java4
-rw-r--r--sonar-db/src/test/java/org/sonar/db/measure/MeasureDaoTest.java4
-rw-r--r--sonar-db/src/test/java/org/sonar/db/measure/MeasureTreeQueryTest.java5
-rw-r--r--sonar-db/src/test/java/org/sonar/db/measure/ProjectMeasuresIndexerIteratorTest.java69
-rw-r--r--sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java8
-rw-r--r--sonar-db/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java10
-rw-r--r--sonar-db/src/test/java/org/sonar/db/property/PropertiesDaoTest.java23
-rw-r--r--sonar-db/src/test/java/org/sonar/db/purge/PurgeDaoTest.java4
-rw-r--r--sonar-db/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java2
-rw-r--r--sonar-db/src/test/java/org/sonar/db/qualityprofile/QualityProfileDaoTest.java22
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest/schema.sql13
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),