aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java/at/ac/tuwien/sepm
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/at/ac/tuwien/sepm')
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java213
1 files changed, 92 insertions, 121 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;
+
+ 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);
}
- private void cleanlyInsert(IDataSet dataSet) throws Exception {
- IDatabaseTester databaseTester =
- new JdbcDatabaseTester(JDBC_DRIVER, JDBC_URL, USER, PASSWORD);
-
- databaseTester.setSetUpOperation(DatabaseOperation.CLEAN_INSERT);
- databaseTester.setDataSet(dataSet);
- databaseTester.onSetup();
+ public void testListEmployees() throws PersistenceException {
+ List<Employee> employees = employeePersistence.list();
+
+ 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 empTwo =
+ Employee.builder()
+ .id(2)
+ .name("Max")
+ .birthday(LocalDate.parse("1990-11-11"))
+ .educationLevel(EducationLevel.NFS)
+ .isDriver(false)
+ .isPilot(false)
+ .build();
+
+ Employee empThree =
+ Employee.builder()
+ .id(3)
+ .name("Lisa")
+ .birthday(LocalDate.parse("1999-10-16"))
+ .educationLevel(EducationLevel.NKI)
+ .isDriver(true)
+ .isPilot(false)
+ .build();
+
+ Assert.assertTrue(employees.contains(empOne));
+ Assert.assertTrue(employees.contains(empTwo));
+ Assert.assertTrue(employees.contains(empThree));
+ Assert.assertEquals(3, employees.size());
}
- @Test
- public void testListEmployees() {
-
- try {
- List<Employee> employees = employeePersistence.list();
-
- 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();
-
- 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();
-
- 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();
-
- Assert.assertTrue(employees.contains(empOne));
- Assert.assertTrue(employees.contains(empTwo));
- Assert.assertTrue(employees.contains(empThree));
- Assert.assertEquals(3, employees.size());
-
- } catch (PersistenceException e) {
- fail();
- }
- }
+ public void testEmployeeListNoElement() throws PersistenceException {
+ List<Employee> employees = employeePersistence.list();
+
+ Employee empOne =
+ Employee.builder()
+ .id(10)
+ .name("Adam")
+ .birthday(LocalDate.parse("2010-10-10"))
+ .educationLevel(EducationLevel.RS)
+ .isDriver(true)
+ .isPilot(false)
+ .build();
- @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();
-
- Assert.assertFalse(employees.contains(empOne));
-
- } catch (PersistenceException e) {
- fail();
- }
+ Assert.assertFalse(employees.contains(empOne));
}
}