From 97de5781b614f5ab3e515f8a63421aae79cf4aa9 Mon Sep 17 00:00:00 2001 From: Martin Weick Date: Mon, 21 May 2018 21:10:07 +0200 Subject: Implement Vehicle Update Tests Persistence #25948 --- .../groupphase/vehicle/VehiclePersistenceTest.java | 95 ++++++++++++++-------- 1 file changed, 62 insertions(+), 33 deletions(-) (limited to 'src') 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 vehicles = vehicleDAO.list(); @@ -104,6 +95,7 @@ public class VehiclePersistenceTest extends DBTestCase { Assert.assertEquals(3, vehicles.size()); } + @Test public void testVehicleListNoElement() throws PersistenceException { List 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); + } } -- cgit v1.2.3-70-g09d2