summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorMartin Weick <e1627760@student.tuwien.ac.at>2018-05-12 10:34:29 +0200
committerTharre <tharre3@gmail.com>2018-05-22 15:02:27 +0200
commitea8477a9699c6065d17ef3b410be8e3c84ddf9c2 (patch)
tree8941b80ede8490d03b1c55dc4b3d4d4befa698d6 /src/test
parent518335d6dc6f72f118426d8eb46bfd2e4077bca6 (diff)
downloadsepm-groupproject-ea8477a9699c6065d17ef3b410be8e3c84ddf9c2.tar.gz
sepm-groupproject-ea8477a9699c6065d17ef3b410be8e3c84ddf9c2.tar.xz
sepm-groupproject-ea8477a9699c6065d17ef3b410be8e3c84ddf9c2.zip
Implement Persistence Test Vehicle
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehiclePersistenceTest.java122
1 files changed, 122 insertions, 0 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
new file mode 100644
index 0000000..e37259b
--- /dev/null
+++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehiclePersistenceTest.java
@@ -0,0 +1,122 @@
+package at.ac.tuwien.sepm.assignment.groupphase.vehicle;
+
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.VehicleDAO;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.VehicleDatabaseDao;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.ConstructionType;
+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.JDBCConnectionManager;
+import java.io.InputStream;
+import java.sql.Types;
+import java.util.List;
+import org.dbunit.DBTestCase;
+import org.dbunit.PropertiesBasedJdbcDatabaseTester;
+import org.dbunit.database.DatabaseConfig;
+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.ext.postgresql.PostgresqlDataTypeFactory;
+import org.junit.Assert;
+
+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'";
+
+ private VehicleDAO vehicleDAO;
+
+ public VehiclePersistenceTest() throws PersistenceException {
+ vehicleDAO = new VehicleDatabaseDao(new JDBCConnectionManager(JDBC_URL));
+
+ System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, JDBC_DRIVER);
+ System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, JDBC_URL);
+ }
+
+ @Override
+ protected IDataSet getDataSet() throws Exception {
+ InputStream res = getClass().getClassLoader().getResourceAsStream("vehicleTestData.xml");
+ 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);
+ }
+
+ public void testListVehicle() throws PersistenceException {
+ List<Vehicle> vehicles = vehicleDAO.list();
+
+ Vehicle v1 =
+ Vehicle.builder()
+ .id(1)
+ .constructionType(ConstructionType.HOCHDACH)
+ .name("RTW-1")
+ .hasNef(true)
+ .status(Status.ABGEMELDET)
+ .type(VehicleType.RTW)
+ .build();
+ Vehicle v2 =
+ Vehicle.builder()
+ .id(2)
+ .constructionType(ConstructionType.MITTELHOCHDACH)
+ .name("KTW-2")
+ .hasNef(false)
+ .status(Status.FREI_WACHE)
+ .type(VehicleType.KTW)
+ .build();
+ Vehicle v3 =
+ Vehicle.builder()
+ .id(3)
+ .constructionType(ConstructionType.NORMAL)
+ .name("NEF-3")
+ .hasNef(false)
+ .status(Status.FREI_FUNK)
+ .type(VehicleType.NEF)
+ .build();
+
+ Assert.assertTrue(vehicles.contains(v1));
+ Assert.assertTrue(vehicles.contains(v2));
+ Assert.assertTrue(vehicles.contains(v3));
+ Assert.assertEquals(3, vehicles.size());
+ }
+
+ public void testVehicleListNoElement() throws PersistenceException {
+ List<Vehicle> vehicles = vehicleDAO.list();
+
+ Vehicle v1 =
+ Vehicle.builder()
+ .id(30)
+ .constructionType(ConstructionType.NORMAL)
+ .name("NEF-3")
+ .hasNef(false)
+ .status(Status.FREI_FUNK)
+ .type(VehicleType.NEF)
+ .build();
+
+ Assert.assertFalse(vehicles.contains(v1));
+ }
+}