diff options
Diffstat (limited to 'src/test/java/at/ac/tuwien/sepm')
| -rw-r--r-- | src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehiclePersistenceTest.java | 95 | 
1 files changed, 62 insertions, 33 deletions
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehiclePersistenceTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehiclePersistenceTest.java index e37259b..32053a8 100644 --- a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehiclePersistenceTest.java +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehiclePersistenceTest.java @@ -7,34 +7,43 @@ import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.Con  import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.Status;  import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.VehicleType;  import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException; +import at.ac.tuwien.sepm.assignment.groupphase.util.Helper;  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.util.List; +import org.dbunit.Assertion;  import org.dbunit.DBTestCase;  import org.dbunit.PropertiesBasedJdbcDatabaseTester;  import org.dbunit.database.DatabaseConfig;  import org.dbunit.dataset.IDataSet; +import org.dbunit.dataset.ITable;  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.dbunit.util.fileloader.FlatXmlDataFileLoader; +import org.junit.After;  import org.junit.Assert; +import org.junit.Test; -public class VehiclePersistenceTest 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 VehiclePersistenceTest extends JdbcTestCase {      private VehicleDAO vehicleDAO; -    public VehiclePersistenceTest() throws PersistenceException { -        vehicleDAO = new VehicleDatabaseDao(new JDBCConnectionManager(JDBC_URL)); +    private Vehicle validUpdateVehicle = Vehicle.builder() +            .hasNef(true) +            .constructionType(ConstructionType.HOCHDACH) +            .type(VehicleType.RTW) +            .id(4) +            .name("RTW-4") +            .status(Status.ABGEMELDET) +            .build(); -        System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, JDBC_DRIVER); -        System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, JDBC_URL); -    } +    public VehiclePersistenceTest(){ +        vehicleDAO = new VehicleDatabaseDao(getJdbcConnectionManager()); +        }      @Override      protected IDataSet getDataSet() throws Exception { @@ -42,31 +51,13 @@ public class VehiclePersistenceTest 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); +    @After +    public void tearDownOperation() throws Exception { +        // needed in order to completely reset DB, including resetting auto_increment sequences +        getJdbcConnectionManager().getConnection().prepareStatement("DROP ALL OBJECTS").execute();      } +    @Test      public void testListVehicle() throws PersistenceException {          List<Vehicle> vehicles = vehicleDAO.list(); @@ -104,6 +95,7 @@ public class VehiclePersistenceTest extends DBTestCase {          Assert.assertEquals(3, vehicles.size());      } +    @Test      public void testVehicleListNoElement() throws PersistenceException {          List<Vehicle> vehicles = vehicleDAO.list(); @@ -119,4 +111,41 @@ public class VehiclePersistenceTest extends DBTestCase {          Assert.assertFalse(vehicles.contains(v1));      } + +    @Test +    public void testUpdateValid_VehicleVersion()throws Exception{ +        vehicleDAO.update(validUpdateVehicle); + +        String[] excludedColumnsVehicleVersion = new String[]{"ID", "NAME"}; +        String tableVehicleVersion = "VEHICLEVERSION"; + +        ITable actualTableData = +                Helper.getActualFilteredTableData( +                        getConnection(),tableVehicleVersion,excludedColumnsVehicleVersion); + +        ITable expectedTableData = +                Helper.getExpectedFilteredTableData( +                        tableVehicleVersion, +                        excludedColumnsVehicleVersion, +                        "vehicleTestUpdateExpectedData.xml"); +        Assertion.assertEquals(expectedTableData, actualTableData); +    } +    @Test +    public void testUpdateValid_Vehicle()throws Exception{ +        vehicleDAO.update(validUpdateVehicle); + +        String[] excludedColumnsVehicleVersion = new String[]{"VERSION","STATUS"}; +        String tableVehicleVersion = "VEHICLE"; + +        ITable actualTableData = +                Helper.getActualFilteredTableData( +                        getConnection(),tableVehicleVersion,excludedColumnsVehicleVersion); + +        ITable expectedTableData = +                Helper.getExpectedFilteredTableData( +                        tableVehicleVersion, +                        excludedColumnsVehicleVersion, +                        "vehicleTestUpdateExpectedData.xml"); +        Assertion.assertEquals(expectedTableData, actualTableData); +    }  }  | 
