diff options
Diffstat (limited to 'src/test/java/at/ac/tuwien/sepm')
| -rw-r--r-- | src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java | 45 | ||||
| -rw-r--r-- | src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/JdbcTestCase.java | 50 | 
2 files changed, 53 insertions, 42 deletions
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java index 5099976..d4f5646 100644 --- a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java @@ -5,35 +5,21 @@ import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.EmployeeDat  import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee;  import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee.EducationLevel;  import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException; -import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager; +import at.ac.tuwien.sepm.assignment.groupphase.util.JdbcTestCase;  import java.io.InputStream; -import java.sql.Types;  import java.time.LocalDate;  import java.util.Set; -import org.dbunit.DBTestCase; -import org.dbunit.PropertiesBasedJdbcDatabaseTester; -import org.dbunit.database.DatabaseConfig;  import org.dbunit.dataset.DataSetException;  import org.dbunit.dataset.IDataSet; -import org.dbunit.dataset.datatype.DataType; -import org.dbunit.dataset.datatype.DataTypeException;  import org.dbunit.dataset.xml.FlatXmlDataSetBuilder; -import org.dbunit.ext.postgresql.PostgresqlDataTypeFactory;  import org.junit.Assert; -public class EmployeePersistenceTest extends DBTestCase { - -    private static final String JDBC_DRIVER = org.h2.Driver.class.getName(); -    private static final String JDBC_URL = -            "jdbc:h2:mem:test;INIT=RUNSCRIPT FROM 'classpath:sql/database.sql'"; +public class EmployeePersistenceTest extends JdbcTestCase {      private EmployeeDAO employeePersistence;      public EmployeePersistenceTest() throws PersistenceException { -        employeePersistence = new EmployeeDatabaseDao(new JDBCConnectionManager(JDBC_URL)); - -        System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, JDBC_DRIVER); -        System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, JDBC_URL); +        employeePersistence = new EmployeeDatabaseDao(jdbcConnectionManager);      }      @Override @@ -43,31 +29,6 @@ public class EmployeePersistenceTest extends DBTestCase {          return new FlatXmlDataSetBuilder().build(res);      } -    @Override -    protected void setUpDatabaseConfig(DatabaseConfig config) { -        PostgresqlDataTypeFactory factory = -                new PostgresqlDataTypeFactory() { -                    @Override -                    public boolean isEnumType(String sqlTypeName) { -                        if (sqlTypeName.equalsIgnoreCase("enum")) return true; - -                        return super.isEnumType(sqlTypeName); -                    } - -                    @Override -                    public DataType createDataType(int sqlType, String sqlTypeName) -                            throws DataTypeException { -                        if (isEnumType(sqlTypeName)) { -                            sqlType = Types.VARCHAR; -                        } - -                        return super.createDataType(sqlType, sqlTypeName); -                    } -                }; - -        config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, factory); -    } -      public void testListEmployees() throws PersistenceException {          Set<Employee> employees = employeePersistence.list(); diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/JdbcTestCase.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/JdbcTestCase.java new file mode 100644 index 0000000..5390841 --- /dev/null +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/JdbcTestCase.java @@ -0,0 +1,50 @@ +package at.ac.tuwien.sepm.assignment.groupphase.util; + +import java.sql.Types; +import org.dbunit.DBTestCase; +import org.dbunit.PropertiesBasedJdbcDatabaseTester; +import org.dbunit.database.DatabaseConfig; +import org.dbunit.dataset.datatype.DataType; +import org.dbunit.dataset.datatype.DataTypeException; +import org.dbunit.ext.postgresql.PostgresqlDataTypeFactory; + +public abstract class JdbcTestCase extends DBTestCase { + +    private static final String JDBC_DRIVER = "org.h2.Driver"; +    private static final String JDBC_URL = +            "jdbc:h2:mem:test;INIT=RUNSCRIPT FROM 'classpath:sql/database.sql'"; + +    protected final JDBCConnectionManager jdbcConnectionManager; + +    protected JdbcTestCase() { +        System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, JDBC_DRIVER); +        System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, JDBC_URL); + +        jdbcConnectionManager = new JDBCConnectionManager(JDBC_URL); +    } + +    @Override +    protected void setUpDatabaseConfig(DatabaseConfig config) { +        PostgresqlDataTypeFactory factory = +                new PostgresqlDataTypeFactory() { +                    @Override +                    public boolean isEnumType(String sqlTypeName) { +                        if (sqlTypeName.equalsIgnoreCase("enum")) return true; + +                        return super.isEnumType(sqlTypeName); +                    } + +                    @Override +                    public DataType createDataType(int sqlType, String sqlTypeName) +                            throws DataTypeException { +                        if (isEnumType(sqlTypeName)) { +                            sqlType = Types.VARCHAR; +                        } + +                        return super.createDataType(sqlType, sqlTypeName); +                    } +                }; + +        config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, factory); +    } +}  | 
