diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2011-10-25 18:20:20 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2011-10-25 18:20:20 +0200 |
commit | 1abe0872fec49139acfb5d5992f82049d1e091f4 (patch) | |
tree | a2725d59a73bfd2d182136cb164081585e99a0f0 /sonar-core | |
parent | eb2542446950dd432bcbcca4a613e7ec43bda96f (diff) | |
download | sonarqube-1abe0872fec49139acfb5d5992f82049d1e091f4.tar.gz sonarqube-1abe0872fec49139acfb5d5992f82049d1e091f4.zip |
SONAR-2642 improve unit test of mybatis mappers
Diffstat (limited to 'sonar-core')
5 files changed, 37 insertions, 27 deletions
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<Rule> 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 @@ <select id="selectAll" resultType="Rule"> select id, plugin_rule_key as "ruleKey", plugin_name as "repositoryKey", description, enabled, name from RULES </select> + + <select id="selectById" parameterType="long" resultType="Rule"> + select id, plugin_rule_key as "ruleKey", plugin_name as "repositoryKey", description, enabled, name from RULES WHERE id=#{id} + </select> </mapper> 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 @@ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> - <layout class="ch.qos.logback.classic.PatternLayout"> + <encoder> <pattern> %d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n </pattern> - </layout> + </encoder> </appender> - <!-- logger name="org.sonar.DBSTATISTICS"> - <level value="INFO"/> - </logger> ---> - <!--<logger name="org.hibernate.SQL">--> - <!--<level value="INFO"/>--> - <!--</logger>--> - <root> <level value="WARN"/> <appender-ref ref="STDOUT"/> 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 @@ +<dataset> + + <RULES id="1" plugin_rule_key="AvoidComparison" plugin_name="checkstyle" name="Avoid Comparison" description="Should avoid ==" enabled="1" /> + <RULES id="2" plugin_rule_key="AvoidNull" plugin_name="checkstyle" name="Avoid Null" description="Should avoid NULL" enabled="1" /> + +</dataset>
\ No newline at end of file |