From ea797f9e8481cb174af7b627d21d5448b9fa6b58 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Tue, 26 Jan 2016 17:43:49 +0100 Subject: [PATCH] remove specific schema for ComponentDaoWithDuplicatedKeysTest less maintenance and risk for test to get out of sync with current definition of table PROJECTS --- .../ComponentDaoWithDuplicatedKeysTest.java | 14 ++++++-- .../schema.sql | 34 ------------------- 2 files changed, 12 insertions(+), 36 deletions(-) delete mode 100644 sonar-db/src/test/resources/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest/schema.sql 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 10f6c501cd7..ad19ef88dbc 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 @@ -19,6 +19,7 @@ */ package org.sonar.db.component; +import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -26,13 +27,15 @@ 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.dialect.MySql; import org.sonar.test.DbTests; import static org.assertj.core.api.Assertions.assertThat; import static org.sonar.db.component.ComponentTesting.newProjectDto; /** - * On H2, the index on PROJECTS.KEE is unique. In order to simulate the MySQL behaviour where the index is not unique, we need to create a schema where there's no unique index on PROJECTS.KEE + * On H2, the index on PROJECTS.KEE is unique. In order to simulate the MySQL behaviour we drop the index on DB other + * than MySQL. */ @Category(DbTests.class) public class ComponentDaoWithDuplicatedKeysTest { @@ -40,7 +43,7 @@ public class ComponentDaoWithDuplicatedKeysTest { static final String PROJECT_KEY = "PROJECT_KEY"; @Rule - public DbTester db = DbTester.createForSchema(System2.INSTANCE, ComponentDaoWithDuplicatedKeysTest.class, "schema.sql"); + public DbTester db = DbTester.create(System2.INSTANCE); DbClient dbClient = db.getDbClient(); @@ -48,6 +51,13 @@ public class ComponentDaoWithDuplicatedKeysTest { ComponentDao underTest = new ComponentDao(); + @Before + public void setUp() throws Exception { + if (!MySql.ID.equals(db.getDbClient().getDatabase().getDialect().getId())) { + db.executeUpdateSql("drop index if exists PROJECTS_KEE"); + } + } + @Test public void select_components_having_same_key() { insertProject(newProjectDto().setKey(PROJECT_KEY)); 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 deleted file mode 100644 index 5b314d137e7..00000000000 --- a/sonar-db/src/test/resources/org/sonar/db/component/ComponentDaoWithDuplicatedKeysTest/schema.sql +++ /dev/null @@ -1,34 +0,0 @@ -CREATE TABLE "PROJECTS" ( - "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), - "KEE" VARCHAR(400), - "ROOT_ID" INTEGER, - "UUID" VARCHAR(50), - "PROJECT_UUID" VARCHAR(50), - "MODULE_UUID" VARCHAR(50), - "MODULE_UUID_PATH" VARCHAR(4000), - "NAME" VARCHAR(256), - "DESCRIPTION" VARCHAR(2000), - "ENABLED" BOOLEAN NOT NULL DEFAULT TRUE, - "SCOPE" VARCHAR(3), - "QUALIFIER" VARCHAR(10), - "DEPRECATED_KEE" VARCHAR(400), - "PATH" VARCHAR(2000), - "LANGUAGE" VARCHAR(20), - "COPY_RESOURCE_ID" INTEGER, - "LONG_NAME" VARCHAR(256), - "PERSON_ID" INTEGER, - "CREATED_AT" TIMESTAMP, - "AUTHORIZATION_UPDATED_AT" BIGINT -); - -CREATE INDEX "PROJECTS_KEE" ON "PROJECTS" ("KEE"); - -CREATE INDEX "PROJECTS_ROOT_ID" ON "PROJECTS" ("ROOT_ID"); - -CREATE UNIQUE INDEX "PROJECTS_UUID" ON "PROJECTS" ("UUID"); - -CREATE INDEX "PROJECTS_PROJECT_UUID" ON "PROJECTS" ("PROJECT_UUID"); - -CREATE INDEX "PROJECTS_MODULE_UUID" ON "PROJECTS" ("MODULE_UUID"); - -CREATE INDEX "PROJECTS_QUALIFIER" ON "PROJECTS" ("QUALIFIER"); -- 2.39.5