From 1abe0872fec49139acfb5d5992f82049d1e091f4 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Tue, 25 Oct 2011 18:20:20 +0200 Subject: SONAR-2642 improve unit test of mybatis mappers --- .../src/test/resources/logback-test.xml | 4 +-- .../src/test/resources/logback-test.xml | 30 ++++++++--------- .../org/sonar/persistence/model/RuleMapper.java | 3 +- .../org/sonar/persistence/model/RuleMapper.xml | 4 +++ .../sonar/persistence/model/RuleMapperTest.java | 39 +++++++++++++--------- sonar-core/src/test/resources/logback-test.xml | 12 ++----- .../model/RuleMapperTest/selectById.xml | 6 ++++ 7 files changed, 54 insertions(+), 44 deletions(-) create mode 100644 sonar-core/src/test/resources/org/sonar/persistence/model/RuleMapperTest/selectById.xml diff --git a/plugins/sonar-core-plugin/src/test/resources/logback-test.xml b/plugins/sonar-core-plugin/src/test/resources/logback-test.xml index cdc8866fe3a..822218f4a68 100644 --- a/plugins/sonar-core-plugin/src/test/resources/logback-test.xml +++ b/plugins/sonar-core-plugin/src/test/resources/logback-test.xml @@ -3,11 +3,11 @@ - + %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n - + diff --git a/plugins/sonar-squid-java-plugin/src/test/resources/logback-test.xml b/plugins/sonar-squid-java-plugin/src/test/resources/logback-test.xml index 8e9fecae068..133e70f5949 100644 --- a/plugins/sonar-squid-java-plugin/src/test/resources/logback-test.xml +++ b/plugins/sonar-squid-java-plugin/src/test/resources/logback-test.xml @@ -1,19 +1,19 @@ - - - - - %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n - - - - - - - - - + + + + + %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n + + + + + + + + + \ No newline at end of file diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/RuleMapper.java b/sonar-core/src/main/java/org/sonar/persistence/model/RuleMapper.java index 7f390de9e33..3e22a222bae 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/RuleMapper.java +++ b/sonar-core/src/main/java/org/sonar/persistence/model/RuleMapper.java @@ -19,10 +19,9 @@ */ package org.sonar.persistence.model; -import org.sonar.persistence.model.Rule; - import java.util.List; public interface RuleMapper { List selectAll(); + Rule selectById(Long id); } diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/RuleMapper.xml b/sonar-core/src/main/resources/org/sonar/persistence/model/RuleMapper.xml index 0c0304650b7..7cb565596dc 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/RuleMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/model/RuleMapper.xml @@ -6,5 +6,9 @@ + + diff --git a/sonar-core/src/test/java/org/sonar/persistence/model/RuleMapperTest.java b/sonar-core/src/test/java/org/sonar/persistence/model/RuleMapperTest.java index d383257341b..6c82754c961 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/model/RuleMapperTest.java +++ b/sonar-core/src/test/java/org/sonar/persistence/model/RuleMapperTest.java @@ -23,7 +23,6 @@ import org.apache.commons.io.IOUtils; import org.apache.ibatis.session.SqlSession; import org.dbunit.DataSourceDatabaseTester; import org.dbunit.IDatabaseTester; -import org.dbunit.database.DatabaseConfig; import org.dbunit.database.IDatabaseConnection; import org.dbunit.dataset.CompositeDataSet; import org.dbunit.dataset.IDataSet; @@ -31,9 +30,7 @@ import org.dbunit.dataset.ReplacementDataSet; import org.dbunit.dataset.xml.FlatXmlDataSet; import org.dbunit.operation.DatabaseOperation; import org.hamcrest.core.Is; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.*; import org.sonar.persistence.InMemoryDatabase; import org.sonar.persistence.MyBatis; @@ -44,23 +41,23 @@ import static org.junit.Assert.assertThat; public class RuleMapperTest { - protected IDatabaseTester databaseTester; - private MyBatis myBatis; - private InMemoryDatabase database; + protected static IDatabaseTester databaseTester; + private static MyBatis myBatis; + private static InMemoryDatabase database; - @Before - public final void startDatabase() throws Exception { + @BeforeClass + public static void startDatabase() throws Exception { database = new InMemoryDatabase(); myBatis = new MyBatis(database); - + database.start(); myBatis.start(); databaseTester = new DataSourceDatabaseTester(database.getDataSource()); } - @After - public final void stopDatabase() throws Exception { + @AfterClass + public static void stopDatabase() throws Exception { if (databaseTester != null) { databaseTester.onTearDown(); } @@ -84,6 +81,21 @@ public class RuleMapperTest { assertThat(rule.getRepositoryKey(), Is.is("checkstyle")); } + @Test + public void testSelectById() throws Exception { + setupData("selectById"); + SqlSession sqlSession = myBatis.openSession(); + RuleMapper ruleMapper = sqlSession.getMapper(RuleMapper.class); + Rule rule = ruleMapper.selectById(2L); + sqlSession.close(); + + assertThat(rule.getId(), Is.is(2L)); + assertThat(rule.getName(), Is.is("Avoid Null")); + assertThat(rule.getDescription(), Is.is("Should avoid NULL")); + assertThat(rule.isEnabled(), Is.is(true)); + assertThat(rule.getRepositoryKey(), Is.is("checkstyle")); + } + protected final void setupData(String... testNames) throws Exception { InputStream[] streams = new InputStream[testNames.length]; try { @@ -116,9 +128,6 @@ public class RuleMapperTest { databaseTester.setDataSet(compositeDataSet); IDatabaseConnection connection = databaseTester.getConnection(); - DatabaseConfig config = connection.getConfig(); - //config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new Db2DataTypeFactory()); - DatabaseOperation.CLEAN_INSERT.execute(connection, databaseTester.getDataSet()); connection.getConnection().commit(); diff --git a/sonar-core/src/test/resources/logback-test.xml b/sonar-core/src/test/resources/logback-test.xml index d42db6a18b6..133e70f5949 100644 --- a/sonar-core/src/test/resources/logback-test.xml +++ b/sonar-core/src/test/resources/logback-test.xml @@ -4,21 +4,13 @@ - + %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n - + - - - - - diff --git a/sonar-core/src/test/resources/org/sonar/persistence/model/RuleMapperTest/selectById.xml b/sonar-core/src/test/resources/org/sonar/persistence/model/RuleMapperTest/selectById.xml new file mode 100644 index 00000000000..217d08e8c80 --- /dev/null +++ b/sonar-core/src/test/resources/org/sonar/persistence/model/RuleMapperTest/selectById.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file -- cgit v1.2.3