aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle')
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CarAddTestService.java283
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleApplication.java51
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleControllerTest.java79
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehiclePersistenceTest.java153
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehicleServiceTestConfiguration.java19
5 files changed, 153 insertions, 432 deletions
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CarAddTestService.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CarAddTestService.java
deleted file mode 100644
index de7a26a..0000000
--- a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CarAddTestService.java
+++ /dev/null
@@ -1,283 +0,0 @@
-package at.ac.tuwien.sepm.assignment.groupphase.vehicle;
-
-import static junit.framework.TestCase.fail;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-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.service.VehicleService;
-import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleServiceImpl;
-import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException;
-import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException;
-import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
-import org.junit.Test;
-
-public class CarAddTestService {
- private final VehicleDAO vehicleP = mock(VehicleDatabaseDao.class);
- private final VehicleService vehicleService = new VehicleServiceImpl(vehicleP);
-
- public CarAddTestService() throws PersistenceException {
- when(vehicleP.add(any())).thenReturn(1L);
- }
-
- @Test
- public void testValidVehicleH() {
- Vehicle vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.HOCHDACH)
- .type(Vehicle.VehicleType.RTW)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (InvalidVehicleException | ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.HOCHDACH)
- .type(Vehicle.VehicleType.KTW)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (InvalidVehicleException | ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.HOCHDACH)
- .type(Vehicle.VehicleType.KTW_B)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (InvalidVehicleException | ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.HOCHDACH)
- .type(Vehicle.VehicleType.BKTW)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (InvalidVehicleException | ServiceException e) {
- fail();
- }
- }
-
- @Test
- public void testValidVehicleM() {
- Vehicle vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.MITTELHOCHDACH)
- .type(Vehicle.VehicleType.KTW)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (InvalidVehicleException | ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.MITTELHOCHDACH)
- .type(Vehicle.VehicleType.KTW_B)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (InvalidVehicleException | ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.MITTELHOCHDACH)
- .type(Vehicle.VehicleType.BKTW)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (InvalidVehicleException | ServiceException e) {
- fail();
- }
- }
-
- @Test
- public void testValidVehicleN() {
- Vehicle vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.NORMAL)
- .type(Vehicle.VehicleType.BKTW)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (InvalidVehicleException | ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.NORMAL)
- .type(Vehicle.VehicleType.NEF)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (InvalidVehicleException | ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.NORMAL)
- .type(Vehicle.VehicleType.NAH)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (InvalidVehicleException | ServiceException e) {
- fail();
- }
- }
-
- @Test(expected = InvalidVehicleException.class)
- public void testInvalidVehicleH() throws InvalidVehicleException {
- Vehicle vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.HOCHDACH)
- .type(Vehicle.VehicleType.NEF)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.HOCHDACH)
- .type(Vehicle.VehicleType.NAH)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (ServiceException e) {
- fail();
- }
- }
-
- @Test(expected = InvalidVehicleException.class)
- public void testInvalidVehicleM() throws InvalidVehicleException {
- Vehicle vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.MITTELHOCHDACH)
- .type(Vehicle.VehicleType.NEF)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.MITTELHOCHDACH)
- .type(Vehicle.VehicleType.NAH)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.MITTELHOCHDACH)
- .type(Vehicle.VehicleType.RTW)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (ServiceException e) {
- fail();
- }
- }
-
- @Test(expected = InvalidVehicleException.class)
- public void testInvalidVehicleN() throws InvalidVehicleException {
- Vehicle vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.NORMAL)
- .type(Vehicle.VehicleType.RTW)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.NORMAL)
- .type(Vehicle.VehicleType.KTW_B)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (ServiceException e) {
- fail();
- }
- vehicle =
- Vehicle.builder()
- .constructionType(Vehicle.ConstructionType.NORMAL)
- .type(Vehicle.VehicleType.KTW)
- .hasNef(true)
- .status(Vehicle.Status.ABGEMELDET)
- .name("")
- .build();
- try {
- vehicleService.add(vehicle);
- } catch (ServiceException e) {
- fail();
- }
- }
-}
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleApplication.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleApplication.java
deleted file mode 100644
index dcd88ec..0000000
--- a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleApplication.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package at.ac.tuwien.sepm.assignment.groupphase.vehicle;
-
-import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader;
-import java.lang.invoke.MethodHandles;
-import javafx.application.Application;
-import javafx.scene.Parent;
-import javafx.scene.Scene;
-import javafx.stage.Stage;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.annotation.AnnotationConfigApplicationContext;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.stereotype.Component;
-
-@Component
-@ComponentScan("at.ac.tuwien.sepm.assignment.groupphase")
-public class CreateNewVehicleApplication extends Application {
-
- private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- public static AnnotationConfigApplicationContext context;
-
- @Override
- public void start(Stage primaryStage) throws Exception {
- // setup application
- primaryStage.setTitle("Fahrzeug anlegen");
- primaryStage.setWidth(1366);
- primaryStage.setHeight(768);
- primaryStage.centerOnScreen();
- primaryStage.setOnCloseRequest(event -> LOG.debug("Application shutdown initiated"));
-
- context = new AnnotationConfigApplicationContext(CreateNewVehicleApplication.class);
- final var fxmlLoader = context.getBean(SpringFXMLLoader.class);
- primaryStage.setScene(
- new Scene(
- (Parent)
- fxmlLoader.load(
- getClass().getResourceAsStream("/fxml/createCar.fxml"))));
-
- // show application
- primaryStage.show();
- primaryStage.toFront();
- LOG.debug("Application startup complete");
- }
-
- @Override
- public void stop() {
- LOG.debug("Stopping application");
- context.close();
- }
-}
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleControllerTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleControllerTest.java
deleted file mode 100644
index 866ed74..0000000
--- a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleControllerTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package at.ac.tuwien.sepm.assignment.groupphase.vehicle;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.when;
-
-import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleService;
-import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException;
-import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
-import at.ac.tuwien.sepm.assignment.groupphase.util.Helper;
-import at.ac.tuwien.sepm.assignment.groupphase.util.HighDpiAwareApplicationTest;
-import javafx.scene.control.DialogPane;
-import javafx.scene.input.MouseButton;
-import javafx.stage.Stage;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.testfx.api.FxToolkit;
-import org.testfx.robot.Motion;
-
-public class CreateNewVehicleControllerTest extends HighDpiAwareApplicationTest {
-
- private VehicleService vehicleService;
-
- @Before
- public void setup() throws Exception {
- // TODO: check if testfx can be run in headless mode on Jenkins
- FxToolkit.registerPrimaryStage();
- FxToolkit.setupApplication(CreateNewVehicleApplication.class);
- vehicleService = CreateNewVehicleApplication.context.getBean(VehicleService.class);
- }
-
- @After
- public void cleanup() throws Exception {
- FxToolkit.cleanupStages();
- }
-
- @Test
- public void testClickAddValidVehicle() throws ServiceException, InvalidVehicleException {
-
- when(vehicleService.add(any())).thenReturn(1L);
-
- clickOn("#btn_create", Motion.DIRECT, MouseButton.PRIMARY);
-
- Stage alertDialog = Helper.getTopModalStage(robotContext());
- Assert.assertNotNull(alertDialog);
-
- DialogPane dialogPane = (DialogPane) alertDialog.getScene().getRoot();
- Assert.assertEquals("Speichern Erfolgreich", dialogPane.getHeaderText());
- }
-
- @Test
- public void testClickInvalidVehicleEx() throws ServiceException, InvalidVehicleException {
-
- when(vehicleService.add(any())).thenThrow(InvalidVehicleException.class);
-
- clickOn("#btn_create", Motion.DIRECT, MouseButton.PRIMARY);
-
- Stage alertDialog = Helper.getTopModalStage(robotContext());
- Assert.assertNotNull(alertDialog);
-
- DialogPane dialogPane = (DialogPane) alertDialog.getScene().getRoot();
- Assert.assertEquals("Ungültige Eingabe", dialogPane.getHeaderText());
- }
-
- @Test
- public void testClickInvalidServiceEx() throws ServiceException, InvalidVehicleException {
-
- when(vehicleService.add(any())).thenThrow(ServiceException.class);
-
- clickOn("#btn_create", Motion.DIRECT, MouseButton.PRIMARY);
-
- Stage alertDialog = Helper.getTopModalStage(robotContext());
- Assert.assertNotNull(alertDialog);
-
- DialogPane dialogPane = (DialogPane) alertDialog.getScene().getRoot();
- Assert.assertEquals("Fehler", dialogPane.getHeaderText());
- }
-}
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..81ebf63
--- /dev/null
+++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehiclePersistenceTest.java
@@ -0,0 +1,153 @@
+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.ElementNotFoundException;
+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.JdbcTestCase;
+import java.io.InputStream;
+import java.util.Set;
+import org.dbunit.Assertion;
+import org.dbunit.dataset.IDataSet;
+import org.dbunit.dataset.ITable;
+import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class VehiclePersistenceTest extends JdbcTestCase {
+
+ private VehicleDAO vehicleDAO;
+
+ private Vehicle validUpdateVehicle =
+ Vehicle.builder()
+ .hasNef(true)
+ .constructionType(ConstructionType.HOCHDACH)
+ .type(VehicleType.RTW)
+ .id(2)
+ .name("RTW-2")
+ .status(Status.ABGEMELDET)
+ .build();
+
+ public VehiclePersistenceTest() {
+ vehicleDAO = new VehicleDatabaseDao(getJdbcConnectionManager());
+ }
+
+ @Override
+ protected IDataSet getDataSet() throws Exception {
+ InputStream res = getClass().getClassLoader().getResourceAsStream("vehicleTestData.xml");
+ return new FlatXmlDataSetBuilder().build(res);
+ }
+
+ @Test
+ public void testListVehicle() throws PersistenceException {
+ Set<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());
+ }
+
+ @Test
+ public void testVehicleListNoElement() throws PersistenceException {
+ Set<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));
+ }
+
+ @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);
+ }
+
+ @Test(expected = ElementNotFoundException.class)
+ public void testUpdateNonExistingVehicle()
+ throws PersistenceException, ElementNotFoundException {
+ Vehicle nonExistentVehicle =
+ Vehicle.builder()
+ .id(35)
+ .constructionType(ConstructionType.NORMAL)
+ .name("NEF-3")
+ .hasNef(false)
+ .status(Status.FREI_FUNK)
+ .type(VehicleType.NEF)
+ .build();
+ vehicleDAO.update(nonExistentVehicle);
+ }
+}
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehicleServiceTestConfiguration.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehicleServiceTestConfiguration.java
deleted file mode 100644
index ccd1e5d..0000000
--- a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehicleServiceTestConfiguration.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package at.ac.tuwien.sepm.assignment.groupphase.vehicle;
-
-import static org.mockito.Mockito.mock;
-
-import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleService;
-import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleServiceImpl;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
-
-@Configuration
-public class VehicleServiceTestConfiguration {
-
- @Bean
- @Primary
- public VehicleService vehicleService() {
- return mock(VehicleServiceImpl.class);
- }
-}