aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2011-10-25 18:20:20 +0200
committerSimon Brandhof <simon.brandhof@gmail.com>2011-10-25 18:20:20 +0200
commit1abe0872fec49139acfb5d5992f82049d1e091f4 (patch)
treea2725d59a73bfd2d182136cb164081585e99a0f0 /sonar-core
parenteb2542446950dd432bcbcca4a613e7ec43bda96f (diff)
downloadsonarqube-1abe0872fec49139acfb5d5992f82049d1e091f4.tar.gz
sonarqube-1abe0872fec49139acfb5d5992f82049d1e091f4.zip
SONAR-2642 improve unit test of mybatis mappers
Diffstat (limited to 'sonar-core')
-rw-r--r--sonar-core/src/main/java/org/sonar/persistence/model/RuleMapper.java3
-rw-r--r--sonar-core/src/main/resources/org/sonar/persistence/model/RuleMapper.xml4
-rw-r--r--sonar-core/src/test/java/org/sonar/persistence/model/RuleMapperTest.java39
-rw-r--r--sonar-core/src/test/resources/logback-test.xml12
-rw-r--r--sonar-core/src/test/resources/org/sonar/persistence/model/RuleMapperTest/selectById.xml6
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