From a61164dda70bcfa11054c726d6b6ef160841aaae Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Lievremont Date: Tue, 24 Mar 2015 11:01:11 +0100 Subject: [PATCH] Remove dependency of migration on core persistence classes --- .../v44/FeedQProfileDatesMigration.java | 6 +-- .../v44/FeedQProfileKeysMigrationTest.java | 45 +++++++++---------- .../migration/v44/Migration44Mapper.java | 2 + .../migration/v44/Migration44Mapper.xml | 4 ++ 4 files changed, 30 insertions(+), 27 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/db/migrations/v44/FeedQProfileDatesMigration.java b/server/sonar-server/src/main/java/org/sonar/server/db/migrations/v44/FeedQProfileDatesMigration.java index 198d0dbb928..24a52f1be5f 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/db/migrations/v44/FeedQProfileDatesMigration.java +++ b/server/sonar-server/src/main/java/org/sonar/server/db/migrations/v44/FeedQProfileDatesMigration.java @@ -25,8 +25,7 @@ import org.sonar.api.utils.System2; import org.sonar.core.UtcDateUtils; import org.sonar.core.persistence.DbSession; import org.sonar.core.persistence.migration.v44.Migration44Mapper; -import org.sonar.core.qualityprofile.db.QualityProfileDto; -import org.sonar.core.qualityprofile.db.QualityProfileMapper; +import org.sonar.core.persistence.migration.v44.QProfileDto44; import org.sonar.server.db.DbClient; import org.sonar.server.db.migrations.DatabaseMigration; @@ -53,9 +52,8 @@ public class FeedQProfileDatesMigration implements DatabaseMigration { try { Date now = new Date(system.now()); int i = 0; - QualityProfileMapper profileMapper = session.getMapper(QualityProfileMapper.class); Migration44Mapper migrationMapper = session.getMapper(Migration44Mapper.class); - for (QualityProfileDto profile : profileMapper.selectAll()) { + for (QProfileDto44 profile : migrationMapper.selectAllProfiles()) { Date createdAt = (Date) ObjectUtils.defaultIfNull(migrationMapper.selectProfileCreatedAt(profile.getId()), now); Date updatedAt = (Date) ObjectUtils.defaultIfNull(migrationMapper.selectProfileUpdatedAt(profile.getId()), now); diff --git a/server/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/FeedQProfileKeysMigrationTest.java b/server/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/FeedQProfileKeysMigrationTest.java index b485ae17d02..defa8783748 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/FeedQProfileKeysMigrationTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/db/migrations/v44/FeedQProfileKeysMigrationTest.java @@ -22,13 +22,12 @@ package org.sonar.server.db.migrations.v44; import org.junit.ClassRule; import org.junit.Test; -import org.sonar.api.utils.System2; import org.sonar.core.persistence.DbTester; -import org.sonar.core.qualityprofile.db.QualityProfileDao; -import org.sonar.core.qualityprofile.db.QualityProfileDto; + +import java.util.List; +import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; public class FeedQProfileKeysMigrationTest { @@ -41,29 +40,29 @@ public class FeedQProfileKeysMigrationTest { new FeedQProfileKeysMigration(db.database()).execute(); - QualityProfileDao dao = new QualityProfileDao(db.myBatis(), mock(System2.class)); + List> profiles = db.select("SELECT kee, name, language, parent_kee FROM rules_profiles ORDER BY id ASC"); - QualityProfileDto parentProfile = dao.getById(10); - assertThat(parentProfile.getKey()).startsWith("java-sonar-way-"); - assertThat(parentProfile.getName()).isEqualTo("Sonar Way"); - assertThat(parentProfile.getLanguage()).isEqualTo("java"); - assertThat(parentProfile.getParentKee()).isNull(); + Map parentProfile = profiles.get(0); + assertThat((String) parentProfile.get("KEE")).startsWith("java-sonar-way-"); + assertThat(parentProfile.get("NAME")).isEqualTo("Sonar Way"); + assertThat(parentProfile.get("LANGUAGE")).isEqualTo("java"); + assertThat(parentProfile.get("PARENT_KEE")).isNull(); - QualityProfileDto differentCaseProfile = dao.getById(11); - assertThat(differentCaseProfile.getKey()).startsWith("java-sonar-way-").isNotEqualTo(parentProfile.getKey()); - assertThat(differentCaseProfile.getName()).isEqualTo("Sonar way"); - assertThat(differentCaseProfile.getParentKee()).isNull(); + Map differentCaseProfile = profiles.get(1); + assertThat((String) differentCaseProfile.get("KEE")).startsWith("java-sonar-way-").isNotEqualTo(parentProfile.get("KEE")); + assertThat(differentCaseProfile.get("NAME")).isEqualTo("Sonar way"); + assertThat(differentCaseProfile.get("PARENT_KEE")).isNull(); - QualityProfileDto childProfile = dao.getById(12); - assertThat(childProfile.getKey()).startsWith("java-child-"); - assertThat(childProfile.getName()).isEqualTo("Child"); - assertThat(childProfile.getParentKee()).isEqualTo(parentProfile.getKey()); + Map childProfile = profiles.get(2); + assertThat((String) childProfile.get("KEE")).startsWith("java-child-"); + assertThat(childProfile.get("NAME")).isEqualTo("Child"); + assertThat(childProfile.get("PARENT_KEE")).isEqualTo(parentProfile.get("KEE")); - QualityProfileDto phpProfile = dao.getById(13); - assertThat(phpProfile.getKey()).startsWith("php-sonar-way-"); - assertThat(phpProfile.getName()).isEqualTo("Sonar Way"); - assertThat(phpProfile.getLanguage()).isEqualTo("php"); - assertThat(phpProfile.getParentKee()).isNull(); + Map phpProfile = profiles.get(3); + assertThat((String) phpProfile.get("KEE")).startsWith("php-sonar-way-"); + assertThat(phpProfile.get("NAME")).isEqualTo("Sonar Way"); + assertThat(phpProfile.get("LANGUAGE")).isEqualTo("php"); + assertThat(phpProfile.get("PARENT_KEE")).isNull(); } } diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/migration/v44/Migration44Mapper.java b/sonar-core/src/main/java/org/sonar/core/persistence/migration/v44/Migration44Mapper.java index 8bffe19dd17..666dc2cb01a 100644 --- a/sonar-core/src/main/java/org/sonar/core/persistence/migration/v44/Migration44Mapper.java +++ b/sonar-core/src/main/java/org/sonar/core/persistence/migration/v44/Migration44Mapper.java @@ -46,6 +46,8 @@ public interface Migration44Mapper { QProfileDto44 selectProfileById(int id); // creation of columns RULES_PROFILES.CREATED_AT and UPDATED_AT + List selectAllProfiles(); + @CheckForNull Date selectProfileCreatedAt(int profileId); diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/migration/v44/Migration44Mapper.xml b/sonar-core/src/main/resources/org/sonar/core/persistence/migration/v44/Migration44Mapper.xml index acd7f5ba775..81152148a37 100644 --- a/sonar-core/src/main/resources/org/sonar/core/persistence/migration/v44/Migration44Mapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/persistence/migration/v44/Migration44Mapper.xml @@ -47,6 +47,10 @@ and pm.value is not null + +