diff options
Diffstat (limited to 'src/test/java/at/ac')
| -rw-r--r-- | src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java | 197 | 
1 files changed, 84 insertions, 113 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 f8fe0f3..e8d0d4d 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 @@ -1,155 +1,126 @@  package at.ac.tuwien.sepm.assignment.groupphase.employee; -import static junit.framework.TestCase.fail; -  import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.EmployeeDAO;  import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.EmployeeDatabaseDao;  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 java.nio.charset.Charset; -import java.sql.SQLException; +import java.io.InputStream; +import java.sql.Types;  import java.time.LocalDate; -import java.time.format.DateTimeFormatter;  import java.util.List; -import org.dbunit.IDatabaseTester; -import org.dbunit.JdbcDatabaseTester; +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.operation.DatabaseOperation; -import org.h2.tools.RunScript; +import org.dbunit.ext.postgresql.PostgresqlDataTypeFactory;  import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -public class EmployeePersistenceTest { +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;DB_CLOSE_DELAY=-1"; -    private static final String USER = ""; -    private static final String PASSWORD = ""; +    private static final String JDBC_URL = +            "jdbc:h2:mem:test;INIT=RUNSCRIPT FROM 'classpath:sql/database.sql'";      private EmployeeDAO employeePersistence;      public EmployeePersistenceTest() throws PersistenceException {          employeePersistence = new EmployeeDatabaseDao(new JDBCConnectionManager(JDBC_URL)); -    } -    @BeforeClass -    public static void createSchema() throws SQLException { -        RunScript.execute( -                JDBC_URL, -                USER, -                PASSWORD, -                "classpath:sql/database.sql", -                Charset.forName("UTF8"), -                false); +        System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, JDBC_DRIVER); +        System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, JDBC_URL);      } -    @Before -    public void importDataSet() throws Exception { -        IDataSet dataSet = readDataSet(); -        cleanlyInsert(dataSet); +    @Override +    protected IDataSet getDataSet() throws DataSetException { +        InputStream res = +                getClass().getClassLoader().getResourceAsStream("employeeServiceTestData.xml"); +        return new FlatXmlDataSetBuilder().build(res);      } -    private IDataSet readDataSet() throws DataSetException { -        return new FlatXmlDataSetBuilder() -                .build( -                        getClass() -                                .getClassLoader() -                                .getResourceAsStream("employeeServiceTestData.xml")); -    } +    @Override +    protected void setUpDatabaseConfig(DatabaseConfig config) { +        PostgresqlDataTypeFactory factory = +                new PostgresqlDataTypeFactory() { +                    @Override +                    public boolean isEnumType(String sqlTypeName) { +                        if (sqlTypeName.equalsIgnoreCase("enum")) return true; -    private void cleanlyInsert(IDataSet dataSet) throws Exception { -        IDatabaseTester databaseTester = -                new JdbcDatabaseTester(JDBC_DRIVER, JDBC_URL, USER, PASSWORD); +                        return super.isEnumType(sqlTypeName); +                    } -        databaseTester.setSetUpOperation(DatabaseOperation.CLEAN_INSERT); -        databaseTester.setDataSet(dataSet); -        databaseTester.onSetup(); -    } +                    @Override +                    public DataType createDataType(int sqlType, String sqlTypeName) +                            throws DataTypeException { +                        if (isEnumType(sqlTypeName)) { +                            sqlType = Types.VARCHAR; +                        } -    @Test -    public void testListEmployees() { +                        return super.createDataType(sqlType, sqlTypeName); +                    } +                }; -        try { -            List<Employee> employees = employeePersistence.list(); +        config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, factory); +    } -            Employee empOne = -                    Employee.builder() -                            .id(1) -                            .name("Adam") -                            .birthday( -                                    LocalDate.parse( -                                            "10.10.2010", -                                            DateTimeFormatter.ofPattern("dd.MM.yyyy"))) -                            .educationLevel(EducationLevel.RS) -                            .isDriver(true) -                            .isPilot(false) -                            .build(); +    public void testListEmployees() throws PersistenceException { +        List<Employee> employees = employeePersistence.list(); -            Employee empTwo = -                    Employee.builder() -                            .id(2) -                            .name("Max") -                            .birthday( -                                    LocalDate.parse( -                                            "11.11.1990", -                                            DateTimeFormatter.ofPattern("dd.MM.yyyy"))) -                            .educationLevel(EducationLevel.NFS) -                            .isDriver(false) -                            .isPilot(false) -                            .build(); +        System.out.println(LocalDate.parse("2010-10-10")); +        Employee empOne = +                Employee.builder() +                        .id(1) +                        .name("Adam") +                        .birthday(LocalDate.parse("2010-10-10")) +                        .educationLevel(EducationLevel.RS) +                        .isDriver(true) +                        .isPilot(false) +                        .build(); -            Employee empThree = -                    Employee.builder() -                            .id(3) -                            .name("Lisa") -                            .birthday( -                                    LocalDate.parse( -                                            "16.10.1999", -                                            DateTimeFormatter.ofPattern("dd.MM.yyyy"))) -                            .educationLevel(EducationLevel.NKI) -                            .isDriver(true) -                            .isPilot(false) -                            .build(); +        Employee empTwo = +                Employee.builder() +                        .id(2) +                        .name("Max") +                        .birthday(LocalDate.parse("1990-11-11")) +                        .educationLevel(EducationLevel.NFS) +                        .isDriver(false) +                        .isPilot(false) +                        .build(); -            Assert.assertTrue(employees.contains(empOne)); -            Assert.assertTrue(employees.contains(empTwo)); -            Assert.assertTrue(employees.contains(empThree)); -            Assert.assertEquals(3, employees.size()); +        Employee empThree = +                Employee.builder() +                        .id(3) +                        .name("Lisa") +                        .birthday(LocalDate.parse("1999-10-16")) +                        .educationLevel(EducationLevel.NKI) +                        .isDriver(true) +                        .isPilot(false) +                        .build(); -        } catch (PersistenceException e) { -            fail(); -        } +        Assert.assertTrue(employees.contains(empOne)); +        Assert.assertTrue(employees.contains(empTwo)); +        Assert.assertTrue(employees.contains(empThree)); +        Assert.assertEquals(3, employees.size());      } -    @Test -    public void testEmployeeListNoElement() { - -        try { -            List<Employee> employees = employeePersistence.list(); - -            Employee empOne = -                    Employee.builder() -                            .id(10) -                            .name("Adam") -                            .birthday( -                                    LocalDate.parse( -                                            "10.10.2010", -                                            DateTimeFormatter.ofPattern("dd.MM.yyyy"))) -                            .educationLevel(EducationLevel.RS) -                            .isDriver(true) -                            .isPilot(false) -                            .build(); +    public void testEmployeeListNoElement() throws PersistenceException { +        List<Employee> employees = employeePersistence.list(); -            Assert.assertFalse(employees.contains(empOne)); +        Employee empOne = +                Employee.builder() +                        .id(10) +                        .name("Adam") +                        .birthday(LocalDate.parse("2010-10-10")) +                        .educationLevel(EducationLevel.RS) +                        .isDriver(true) +                        .isPilot(false) +                        .build(); -        } catch (PersistenceException e) { -            fail(); -        } +        Assert.assertFalse(employees.contains(empOne));      }  }  | 
