From 81440e3824fa83d36c9b5426e06944a91d08e6e7 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Tue, 6 Dec 2011 18:04:22 +0100 Subject: [PATCH] Fix compatibility of DbUnit with Oracle (lack of boolean type) --- .../sonar/persistence/dao/DaoTestCase.java | 4 ++++ .../persistence/dao/DatabaseCommands.java | 21 +++++++++++++++++-- .../persistence/dao/ReviewDaoTest/shared.xml | 6 +++--- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/sonar-core/src/test/java/org/sonar/persistence/dao/DaoTestCase.java b/sonar-core/src/test/java/org/sonar/persistence/dao/DaoTestCase.java index e066c68812f..84af5d3f67d 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/dao/DaoTestCase.java +++ b/sonar-core/src/test/java/org/sonar/persistence/dao/DaoTestCase.java @@ -148,6 +148,8 @@ public abstract class DaoTestCase { for (int i = 0; i < dataSetStream.length; i++) { ReplacementDataSet dataSet = new ReplacementDataSet(new FlatXmlDataSet(dataSetStream[i])); dataSet.addReplacementObject("[null]", null); + dataSet.addReplacementObject("[false]", databaseCommands.getFalse()); + dataSet.addReplacementObject("[true]", databaseCommands.getTrue()); dataSets[i] = dataSet; } CompositeDataSet compositeDataSet = new CompositeDataSet(dataSets); @@ -208,6 +210,8 @@ public abstract class DaoTestCase { try { ReplacementDataSet dataSet = new ReplacementDataSet(new FlatXmlDataSet(stream)); dataSet.addReplacementObject("[null]", null); + dataSet.addReplacementObject("[false]", databaseCommands.getFalse()); + dataSet.addReplacementObject("[true]", databaseCommands.getTrue()); return dataSet; } catch (Exception e) { throw translateException("Could not read the dataset stream", e); diff --git a/sonar-core/src/test/java/org/sonar/persistence/dao/DatabaseCommands.java b/sonar-core/src/test/java/org/sonar/persistence/dao/DatabaseCommands.java index 974c4a54df3..def47861443 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/dao/DatabaseCommands.java +++ b/sonar-core/src/test/java/org/sonar/persistence/dao/DatabaseCommands.java @@ -20,8 +20,7 @@ package org.sonar.persistence.dao; import org.apache.commons.lang.StringUtils; -import org.dbunit.dataset.datatype.DefaultDataTypeFactory; -import org.dbunit.dataset.datatype.IDataTypeFactory; +import org.dbunit.dataset.datatype.*; import org.dbunit.ext.mssql.MsSqlDataTypeFactory; import org.dbunit.ext.mysql.MySqlDataTypeFactory; import org.dbunit.ext.oracle.Oracle10DataTypeFactory; @@ -42,6 +41,14 @@ abstract class DatabaseCommands { abstract String truncate(String table); abstract List resetPrimaryKey(String table); + + Object getTrue() { + return Boolean.TRUE; + } + + Object getFalse() { + return Boolean.FALSE; + } final IDataTypeFactory dbUnitFactory() { return dbUnitFactory; @@ -98,6 +105,16 @@ abstract class DatabaseCommands { "CREATE SEQUENCE " + sequence + " INCREMENT BY 1 MINVALUE 1 START WITH 1" ); } + + @Override + Object getTrue() { + return 1; + } + + @Override + Object getFalse() { + return 0; + } }; static final DatabaseCommands POSTGRESQL = new DatabaseCommands(new PostgresqlDataTypeFactory()) { diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/ReviewDaoTest/shared.xml b/sonar-core/src/test/resources/org/sonar/persistence/dao/ReviewDaoTest/shared.xml index 59053089536..6cbe3307202 100644 --- a/sonar-core/src/test/resources/org/sonar/persistence/dao/ReviewDaoTest/shared.xml +++ b/sonar-core/src/test/resources/org/sonar/persistence/dao/ReviewDaoTest/shared.xml @@ -14,7 +14,7 @@ user_id="300" resource_id="400" rule_id="500" - manual_violation="true"/> + manual_violation="[true]"/> + manual_violation="[false]"/> @@ -46,6 +46,6 @@ user_id="300" resource_id="401" rule_id="500" - manual_violation="true"/> + manual_violation="[true]"/> -- 2.39.5