diff options
author | Dominic Rogetzer <e1627756@student.tuwien.ac.at> | 2018-05-19 14:36:27 +0200 |
---|---|---|
committer | Tharre <tharre3@gmail.com> | 2018-05-22 17:05:32 +0200 |
commit | 3f96ee012092a8a403c6b3ed91d8e72fdbcbb977 (patch) | |
tree | 1ff793265ee195166ec7b5197b010c4e320bfb7a /src/test/java/at/ac/tuwien/sepm | |
parent | 62ac756fbb443f1e8d28543d093ae956afd55ebb (diff) | |
download | sepm-groupproject-3f96ee012092a8a403c6b3ed91d8e72fdbcbb977.tar.gz sepm-groupproject-3f96ee012092a8a403c6b3ed91d8e72fdbcbb977.tar.xz sepm-groupproject-3f96ee012092a8a403c6b3ed91d8e72fdbcbb977.zip |
Add further DBUnit-Tests for employee.add [#25963]
Diffstat (limited to 'src/test/java/at/ac/tuwien/sepm')
-rw-r--r-- | src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeePersistenceTest.java | 88 |
1 files changed, 67 insertions, 21 deletions
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeePersistenceTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeePersistenceTest.java index 52a87eb..6bfd898 100644 --- a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeePersistenceTest.java +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeePersistenceTest.java @@ -13,6 +13,7 @@ import org.dbunit.dataset.IDataSet; import org.dbunit.dataset.ITable; import org.dbunit.dataset.filter.DefaultColumnFilter; import org.dbunit.dataset.xml.FlatXmlDataSetBuilder; +import org.dbunit.operation.DatabaseOperation; import org.dbunit.util.fileloader.FlatXmlDataFileLoader; import org.junit.Assert; @@ -27,10 +28,22 @@ public class EmployeePersistenceTest extends JdbcTestCase { @Override protected IDataSet getDataSet() throws DataSetException { InputStream res = - getClass().getClassLoader().getResourceAsStream("employeeServiceTestData.xml"); + getClass() + .getClassLoader() + .getResourceAsStream("EmployeePersistenceTestBaseData.xml"); return new FlatXmlDataSetBuilder().build(res); } + protected DatabaseOperation getSetUpOperation() throws Exception { + return DatabaseOperation.CLEAN_INSERT; + } + + protected DatabaseOperation getTearDownOperation() throws Exception { + // needed in order to completely reset DB, including resetting auto_increment sequences + jdbcConnectionManager.getConnection().prepareStatement("DROP ALL OBJECTS").execute(); + return DatabaseOperation.DELETE_ALL; + } + public void testListEmployees() throws PersistenceException { Set<Employee> employees = employeePersistence.list(); @@ -87,30 +100,21 @@ public class EmployeePersistenceTest extends JdbcTestCase { Assert.assertFalse(employees.contains(empOne)); } - /** - * This test checks if rows in both table EmployeeVersion and Employee are created, without - * checking the referential integrity constraint. - * - * @throws Exception - */ - public void testAddValidEmployee() throws Exception { + Employee validEmployee = + Employee.builder() + .name("Testperson") + .birthday(LocalDate.parse("2010-11-11")) + .educationLevel(EducationLevel.NA) + .isDriver(true) + .isPilot(false) + .build(); - Employee employee = - Employee.builder() - .id(4) - .name("Testperson") - .birthday(LocalDate.parse("2010-11-11")) - .educationLevel(EducationLevel.NA) - .isDriver(true) - .isPilot(false) - .build(); + public void testAddValidEmployee_EmployeeVersion() throws Exception { - employeePersistence.add(employee); + employeePersistence.add(validEmployee); String[] excludedColumnsEmployeeVersion = new String[] {"ID"}; - String[] excludedColumnsEmployee = new String[] {"VERSION"}; String tableEmployeeVersion = "EMPLOYEEVERSION"; - String tableEmployee = "EMPLOYEE"; // load actual and expected data set IDataSet actualDataSet = getConnection().createDataSet(); @@ -129,6 +133,21 @@ public class EmployeePersistenceTest extends JdbcTestCase { DefaultColumnFilter.excludedColumnsTable( expectedEmployeeVersionTable, excludedColumnsEmployeeVersion); + Assertion.assertEquals(expectedFilteredTable, actualFilteredTable); + } + + public void testAddValidEmployee_Employee() throws Exception { + + employeePersistence.add(validEmployee); + + String[] excludedColumnsEmployee = new String[] {"VERSION"}; + String tableEmployee = "EMPLOYEE"; + + // load actual and expected data set + IDataSet actualDataSet = getConnection().createDataSet(); + IDataSet expectedDataSet = + new FlatXmlDataFileLoader().load("/testAddValidEmployee_expected.xml"); + // extract employee table ITable actualEmployeeTable = actualDataSet.getTable(tableEmployee); ITable expectedEmployeeTable = expectedDataSet.getTable(tableEmployee); @@ -141,10 +160,37 @@ public class EmployeePersistenceTest extends JdbcTestCase { DefaultColumnFilter.excludedColumnsTable( expectedEmployeeTable, excludedColumnsEmployee); - Assertion.assertEquals(expectedFilteredTable, actualFilteredTable); Assertion.assertEquals(expectedFilteredEmpTable, actualFilteredEmpTable); } + public void testAddValidEmployee_Join() throws Exception { + + employeePersistence.add(validEmployee); + + String[] excludedColumns = new String[] {"E_VERSION", "V_ID"}; + String table = "EMP_JOIN"; + + String sqlJoinEmployeeVersion = + "SELECT e.id AS E_ID, v.name AS V_NAME, v.birthday AS V_BIRTHDAY, " + + "v.educationLevel as V_EDUCATIONLEVEL, " + + "v.isDriver AS V_ISDRIVER, v.isPilot AS V_ISPILOT " + + "FROM Employee e " + + "JOIN EmployeeVersion v ON e.version = v.id"; + + ITable actualJoinData = getConnection().createQueryTable(table, sqlJoinEmployeeVersion); + + IDataSet expectedDataSet = + new FlatXmlDataFileLoader().load("/testAddValidEmployeeJoin_expected.xml"); + ITable expectedJoinData = expectedDataSet.getTable(table); + + ITable actualFilteredJoinData = + DefaultColumnFilter.excludedColumnsTable(actualJoinData, excludedColumns); + ITable expectedFilteredJoinData = + DefaultColumnFilter.excludedColumnsTable(expectedJoinData, excludedColumns); + + Assertion.assertEquals(expectedFilteredJoinData, actualFilteredJoinData); + } + public void testUpdateValidEmployee() throws PersistenceException {} public void testUpdateNonExistingEmployee() throws PersistenceException {} |