diff options
Diffstat (limited to 'src/test/java/at/ac/tuwien/sepm/assignment')
| -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 {}  | 
