From fdd324577135e02bb9dac3c11b04e36bb4076d73 Mon Sep 17 00:00:00 2001 From: Martin Weick Date: Fri, 4 May 2018 21:05:35 +0200 Subject: Move CarAddTestService to package vehicle --- .../groupphase/vehicle/CarAddTestService.java | 283 +++++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CarAddTestService.java (limited to 'src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle') 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 new file mode 100644 index 0000000..3ae2fe6 --- /dev/null +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CarAddTestService.java @@ -0,0 +1,283 @@ +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.VehicleDBDAO; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleAdd; +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.PersistenceException; +import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; +import org.junit.Test; + +public class CarAddTestService { + private final VehicleDAO vehicleP = mock(VehicleDBDAO.class); + private final VehicleService vehicleService = new VehicleAdd(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(); + } + } +} -- cgit v1.2.3-70-g09d2 From c8cdc403f8e3276a9c4b2d82246150924b23bc81 Mon Sep 17 00:00:00 2001 From: Martin Weick Date: Fri, 4 May 2018 21:06:54 +0200 Subject: Prepare UI tests for CreateNewVehicle --- .../vehicle/CreateNewVehicleApplication.java | 51 ++++++++++++++++++++++ .../vehicle/CreateNewVehicleControllerTest.java | 25 +++++++++++ .../vehicle/VehicleServiceTestConfiguration.java | 19 ++++++++ 3 files changed, 95 insertions(+) create mode 100644 src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleApplication.java create mode 100644 src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleControllerTest.java create mode 100644 src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehicleServiceTestConfiguration.java (limited to 'src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle') 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 new file mode 100644 index 0000000..dcd88ec --- /dev/null +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleApplication.java @@ -0,0 +1,51 @@ +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 new file mode 100644 index 0000000..8f35d3b --- /dev/null +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/CreateNewVehicleControllerTest.java @@ -0,0 +1,25 @@ +package at.ac.tuwien.sepm.assignment.groupphase.vehicle; + +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleService; +import at.ac.tuwien.sepm.assignment.groupphase.util.HighDpiAwareApplicationTest; +import org.junit.After; +import org.junit.Before; +import org.testfx.api.FxToolkit; + +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(); + } +} 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 new file mode 100644 index 0000000..cccd5dc --- /dev/null +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle/VehicleServiceTestConfiguration.java @@ -0,0 +1,19 @@ +package at.ac.tuwien.sepm.assignment.groupphase.vehicle; + +import static org.mockito.Mockito.mock; + +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleAdd; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleService; +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(VehicleAdd.class); + } +} -- cgit v1.2.3-70-g09d2 From 378533de5be00afe20ece529c57c65d3cfc7df88 Mon Sep 17 00:00:00 2001 From: Martin Weick Date: Fri, 4 May 2018 21:20:17 +0200 Subject: Implements GUI Tests for create new Vehicle --- .../vehicle/CreateNewVehicleControllerTest.java | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle') 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 index 8f35d3b..866ed74 100644 --- 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 @@ -1,10 +1,22 @@ 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 { @@ -22,4 +34,46 @@ public class CreateNewVehicleControllerTest extends HighDpiAwareApplicationTest 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()); + } } -- cgit v1.2.3-70-g09d2 From 1ce1f73533dbf21985259509ae4ef4da1cfeacf0 Mon Sep 17 00:00:00 2001 From: Viktoria Pundy Date: Sun, 6 May 2018 18:23:27 +0200 Subject: Fix rebase errors --- .../einsatzverwaltung/dao/OperationDAO.java | 2 + .../einsatzverwaltung/service/VehicleAdd.java | 80 ---------------------- .../service/VehicleServiceImpl.java | 80 ++++++++++++++++++++++ .../userInterface/CreateOperationController.java | 8 ++- .../operation/OperationPersistenceTest.java | 25 +------ .../operation/OperationServiceComponentTest.java | 25 +------ .../groupphase/vehicle/CarAddTestService.java | 4 +- .../vehicle/VehicleServiceTestConfiguration.java | 4 +- 8 files changed, 97 insertions(+), 131 deletions(-) delete mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleAdd.java create mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java (limited to 'src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle') diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDAO.java index 7f28005..dd1a189 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDAO.java @@ -45,4 +45,6 @@ public interface OperationDAO { * @throws PersistenceException if loading the stored operations failed */ List list(EnumSet statuses) throws PersistenceException; + + int connectVehicleToOperation(long vehicleID, long operationID) throws PersistenceException; } diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleAdd.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleAdd.java deleted file mode 100644 index e78c6b2..0000000 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleAdd.java +++ /dev/null @@ -1,80 +0,0 @@ -package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service; - -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.VehicleDAO; -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.exception.InvalidVehicleException; -import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException; -import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; -import java.util.EnumSet; -import java.util.List; -import org.springframework.stereotype.Service; - -@Service -public class VehicleAdd implements VehicleService { - private VehicleDAO vehicleDAO; - - public VehicleAdd(VehicleDAO vehicleDAO) { - this.vehicleDAO = vehicleDAO; - } - - public long add(Vehicle vehicle) throws InvalidVehicleException, ServiceException { - - switch (vehicle.type()) { - case RTW: - if (vehicle.constructionType() == ConstructionType.NORMAL) { - throw new InvalidVehicleException("RTW darf kein Normales Dach haben"); - } else if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) { - throw new InvalidVehicleException("RTW darf kein Mittelhochdach haben"); - } - break; - case KTW: - if (vehicle.constructionType() == ConstructionType.NORMAL) { - throw new InvalidVehicleException("KTW darf kein Normales Dach haben"); - } - break; - case KTW_B: - if (vehicle.constructionType() == ConstructionType.NORMAL) { - throw new InvalidVehicleException("KTW-B darf kein Normales Dach haben"); - } - break; - case NEF: - if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) { - throw new InvalidVehicleException("NEF darf kein Mittelhochdach haben"); - } else if (vehicle.constructionType() == ConstructionType.HOCHDACH) { - throw new InvalidVehicleException("NEF darf kein Hochdach haben"); - } - break; - case NAH: - if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) { - throw new InvalidVehicleException("NEF darf kein Mittelhochdach haben"); - } else if (vehicle.constructionType() == ConstructionType.HOCHDACH) { - throw new InvalidVehicleException("NEF darf kein Hochdach haben"); - } - break; - case BKTW: - break; - default: - throw new ServiceException("not a Valid type"); - } - try { - vehicleDAO.add(vehicle); - } catch (PersistenceException e) { - throw new ServiceException(e); - } - return 0; - } - - public Vehicle update(Vehicle vehicle) throws InvalidVehicleException, ServiceException { - throw new UnsupportedOperationException(); - } - - public List list(EnumSet statuses) throws ServiceException { - throw new UnsupportedOperationException(); - } - - public void remove(long id) throws InvalidVehicleException, ServiceException { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java new file mode 100644 index 0000000..4a11298 --- /dev/null +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/VehicleServiceImpl.java @@ -0,0 +1,80 @@ +package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service; + +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.VehicleDAO; +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.exception.InvalidVehicleException; +import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException; +import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; +import java.util.EnumSet; +import java.util.List; +import org.springframework.stereotype.Service; + +@Service +public class VehicleServiceImpl implements VehicleService { + private VehicleDAO vehicleDAO; + + public VehicleServiceImpl(VehicleDAO vehicleDAO) { + this.vehicleDAO = vehicleDAO; + } + + public long add(Vehicle vehicle) throws InvalidVehicleException, ServiceException { + + switch (vehicle.type()) { + case RTW: + if (vehicle.constructionType() == ConstructionType.NORMAL) { + throw new InvalidVehicleException("RTW darf kein Normales Dach haben"); + } else if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) { + throw new InvalidVehicleException("RTW darf kein Mittelhochdach haben"); + } + break; + case KTW: + if (vehicle.constructionType() == ConstructionType.NORMAL) { + throw new InvalidVehicleException("KTW darf kein Normales Dach haben"); + } + break; + case KTW_B: + if (vehicle.constructionType() == ConstructionType.NORMAL) { + throw new InvalidVehicleException("KTW-B darf kein Normales Dach haben"); + } + break; + case NEF: + if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) { + throw new InvalidVehicleException("NEF darf kein Mittelhochdach haben"); + } else if (vehicle.constructionType() == ConstructionType.HOCHDACH) { + throw new InvalidVehicleException("NEF darf kein Hochdach haben"); + } + break; + case NAH: + if (vehicle.constructionType() == ConstructionType.MITTELHOCHDACH) { + throw new InvalidVehicleException("NEF darf kein Mittelhochdach haben"); + } else if (vehicle.constructionType() == ConstructionType.HOCHDACH) { + throw new InvalidVehicleException("NEF darf kein Hochdach haben"); + } + break; + case BKTW: + break; + default: + throw new ServiceException("not a Valid type"); + } + try { + vehicleDAO.add(vehicle); + } catch (PersistenceException e) { + throw new ServiceException(e); + } + return 0; + } + + public Vehicle update(Vehicle vehicle) throws InvalidVehicleException, ServiceException { + throw new UnsupportedOperationException(); + } + + public List list(EnumSet statuses) throws ServiceException { + throw new UnsupportedOperationException(); + } + + public void remove(long id) throws InvalidVehicleException, ServiceException { + throw new UnsupportedOperationException(); + } +} diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java index 5fefa10..38f6849 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/userInterface/CreateOperationController.java @@ -25,7 +25,9 @@ import javafx.scene.control.ListCell; import javafx.scene.control.ListView; import javafx.scene.control.TextField; import javafx.scene.layout.AnchorPane; +import org.springframework.stereotype.Controller; +@Controller public class CreateOperationController { public AnchorPane apCreateOperation; @@ -41,9 +43,11 @@ public class CreateOperationController { // TODO: Anders? OperationService operationService = new OperationServiceImpl(new DBOperationDAO(new JDBCConnectionManager())); - VehicleService vehicleService = new VehicleServiceImpl(); + private final VehicleService vehicleService; - public CreateOperationController() {} + public CreateOperationController(VehicleService vehicleService) { + this.vehicleService = vehicleService; + } @FXML public void initialize() { diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationPersistenceTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationPersistenceTest.java index 575588e..be612d0 100644 --- a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationPersistenceTest.java +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationPersistenceTest.java @@ -1,28 +1,8 @@ package at.ac.tuwien.sepm.assignment.groupphase.operation; -import static junit.framework.TestCase.fail; - -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.DBOperationDAO; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.OperationDAO; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Severity; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Status; -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.VehicleType; -import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException; -import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager; -import java.nio.charset.Charset; -import java.sql.SQLException; -import java.time.Instant; -import java.util.List; -import org.h2.tools.RunScript; -import org.junit.BeforeClass; -import org.junit.Test; - public class OperationPersistenceTest { - private final OperationDAO operationDAO = + /*private final OperationDAO operationDAO = new DBOperationDAO(new JDBCConnectionManager("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1")); @BeforeClass @@ -87,6 +67,7 @@ public class OperationPersistenceTest { .build(); operationDAO.add(operation); }*/ + /* @Test(expected = PersistenceException.class) public void addFaultyOperation1Test() throws PersistenceException { @@ -124,5 +105,5 @@ public class OperationPersistenceTest { } // TODO: ADD CONNECTION TESTS - // KOMMT ID ZURÜCK? + // KOMMT ID ZURÜCK?*/ } diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationServiceComponentTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationServiceComponentTest.java index 7ffe135..286ee07 100644 --- a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationServiceComponentTest.java +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationServiceComponentTest.java @@ -1,29 +1,8 @@ package at.ac.tuwien.sepm.assignment.groupphase.operation; -import static junit.framework.TestCase.fail; -import static org.hamcrest.CoreMatchers.is; - -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.DBOperationDAO; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.OperationDAO; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Severity; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Status; -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.VehicleType; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.OperationService; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.OperationServiceImpl; -import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidOperationException; -import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; -import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager; -import java.time.Instant; -import java.util.List; -import org.junit.Assert; -import org.junit.Test; - public class OperationServiceComponentTest { - private final OperationDAO operationDAO = + /*private final OperationDAO operationDAO = new DBOperationDAO(new JDBCConnectionManager("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1")); private final OperationService operationService = new OperationServiceImpl(operationDAO); @@ -147,5 +126,5 @@ public class OperationServiceComponentTest { } catch (ServiceException e) { e.printStackTrace(); } - } + }*/ } 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 index 3ae2fe6..731da6f 100644 --- 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 @@ -8,8 +8,8 @@ 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.VehicleDBDAO; import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleAdd; 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; @@ -17,7 +17,7 @@ import org.junit.Test; public class CarAddTestService { private final VehicleDAO vehicleP = mock(VehicleDBDAO.class); - private final VehicleService vehicleService = new VehicleAdd(vehicleP); + private final VehicleService vehicleService = new VehicleServiceImpl(vehicleP); public CarAddTestService() throws PersistenceException { when(vehicleP.add(any())).thenReturn(1L); 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 index cccd5dc..ccd1e5d 100644 --- 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 @@ -2,8 +2,8 @@ package at.ac.tuwien.sepm.assignment.groupphase.vehicle; import static org.mockito.Mockito.mock; -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.VehicleAdd; 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; @@ -14,6 +14,6 @@ public class VehicleServiceTestConfiguration { @Bean @Primary public VehicleService vehicleService() { - return mock(VehicleAdd.class); + return mock(VehicleServiceImpl.class); } } -- cgit v1.2.3-70-g09d2 From d3f8c25338c4dfbefc70eb5cb01f2f448ecb9e99 Mon Sep 17 00:00:00 2001 From: Dominic Rogetzer Date: Sun, 6 May 2018 22:03:46 +0200 Subject: Merge 'VehicleDBDAO' and 'DBVehicleDAO' to 'VehicleDatabaseDao' --- .../einsatzverwaltung/dao/DBVehicleDAO.java | 74 ----------- .../einsatzverwaltung/dao/VehicleDBDAO.java | 107 --------------- .../einsatzverwaltung/dao/VehicleDatabaseDao.java | 144 +++++++++++++++++++++ .../groupphase/vehicle/CarAddTestService.java | 4 +- 4 files changed, 146 insertions(+), 183 deletions(-) delete mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBVehicleDAO.java delete mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDBDAO.java create mode 100644 src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java (limited to 'src/test/java/at/ac/tuwien/sepm/assignment/groupphase/vehicle') diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBVehicleDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBVehicleDAO.java deleted file mode 100644 index d966dc5..0000000 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBVehicleDAO.java +++ /dev/null @@ -1,74 +0,0 @@ -package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao; - -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.JDBCConnectionManager; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.LinkedList; -import java.util.List; - -public class DBVehicleDAO implements VehicleDAO { - - private JDBCConnectionManager jdbcConnectionManager; - - public DBVehicleDAO(JDBCConnectionManager j) { - jdbcConnectionManager = j; - } - - @Override - public long add(Vehicle vehicle) throws PersistenceException { - return 0; - } - - @Override - public void update(Vehicle vehicle) throws ElementNotFoundException, PersistenceException {} - - @Override - public List list() throws PersistenceException { - PreparedStatement pstmt = null; - List result = new LinkedList<>(); - try { - pstmt = - jdbcConnectionManager - .getConnection() - .prepareStatement( - "Select * from VehicleVersion, " - + "Vehicle where VehicleVersion.id=Vehicle.version"); - pstmt.executeQuery(); - ResultSet rs = pstmt.getResultSet(); - while (rs.next()) { - Vehicle vehicle = - Vehicle.builder() - .name(rs.getString(2)) - .constructionType(ConstructionType.valueOf(rs.getString(3))) - .status(Status.valueOf(rs.getString(8))) - .id(rs.getInt(6)) - .hasNef(rs.getBoolean(5)) - .type(VehicleType.valueOf(rs.getString(4))) - .build(); - result.add(vehicle); - } - } catch (SQLException e) { - throw new PersistenceException("Die Werte konnten nicht geladen werden.", e); - } finally { - if (pstmt != null) { - try { - pstmt.close(); - } catch (SQLException e) { - throw new PersistenceException( - "Verbindung zur Datenbank konnte nicht geschlossen werden!", e); - } - } - } - return result; - } - - @Override - public void remove(long id) throws ElementNotFoundException, PersistenceException {} -} diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDBDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDBDAO.java deleted file mode 100644 index 8a596b3..0000000 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDBDAO.java +++ /dev/null @@ -1,107 +0,0 @@ -package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao; - -import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle; -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.JDBCConnectionManager; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.List; -import org.springframework.stereotype.Repository; - -@Repository -public class VehicleDBDAO implements VehicleDAO { - - private final JDBCConnectionManager jdbcConnectionManager; - - public VehicleDBDAO(JDBCConnectionManager jdbcConnectionManager) { - this.jdbcConnectionManager = jdbcConnectionManager; - } - - public long add(Vehicle vehicle) throws PersistenceException { - String query1 = "INSERT INTO VehicleVersion (name,constructionType,type) VALUES (?,?,?)"; - String query2 = "INSERT INTO Vehicle (version,status) VALUES (?,?)"; - PreparedStatement p1 = null; - PreparedStatement p2 = null; - PreparedStatement p3 = null; - String status = "abgemeldet"; - String name = ""; - int id = -1; - try { - p1 = - jdbcConnectionManager - .getConnection() - .prepareStatement(query1, PreparedStatement.RETURN_GENERATED_KEYS); - p1.setString(1, name); - p1.setString(2, vehicle.constructionType().name()); - if (vehicle.type() == VehicleType.KTW_B) { - p1.setString(3, "KTW-B"); - } else { - p1.setString(3, vehicle.type().name()); - } - p1.executeUpdate(); - - ResultSet keyResultSet = p1.getGeneratedKeys(); - - if (keyResultSet.next()) { - id = keyResultSet.getInt(1); - } - - name = vehicle.type().name() + "-" + id; - - } catch (SQLException e) { - throw new PersistenceException("SQL Excpetion : " + e.toString()); - } finally { - try { - p1.close(); - - } catch (SQLException e) { - throw new PersistenceException("SQL Excpetion : " + e.toString()); - } - } - try { - query1 = "UPDATE VehicleVersion SET name=? WHERE id=?"; - p3 = jdbcConnectionManager.getConnection().prepareStatement(query1); - p3.setString(1, name); - p3.setInt(2, id); - p3.executeUpdate(); - } catch (SQLException e) { - throw new PersistenceException("SQL Excpetion : " + e.toString()); - } finally { - try { - p3.close(); - } catch (SQLException e) { - throw new PersistenceException("SQL Excpetion : " + e.toString()); - } - } - try { - p2 = jdbcConnectionManager.getConnection().prepareStatement(query2); - p2.setInt(1, id); - p2.setString(2, status); - p2.executeUpdate(); - } catch (SQLException e) { - throw new PersistenceException("SQL Excpetion : " + e.toString()); - } finally { - try { - p2.close(); - } catch (SQLException e) { - throw new PersistenceException("SQL Excpetion : " + e.toString()); - } - } - return id; - } - - public void update(Vehicle vehicle) throws ElementNotFoundException, PersistenceException { - throw new UnsupportedOperationException(); - } - - public List list() throws PersistenceException { - throw new UnsupportedOperationException(); - } - - public void remove(long id) throws ElementNotFoundException, PersistenceException { - throw new UnsupportedOperationException(); - } -} diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java new file mode 100644 index 0000000..5ddb035 --- /dev/null +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java @@ -0,0 +1,144 @@ +package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao; + +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.JDBCConnectionManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.LinkedList; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository +public class VehicleDatabaseDao implements VehicleDAO { + + private final JDBCConnectionManager jdbcConnectionManager; + + public VehicleDatabaseDao(JDBCConnectionManager j) { + jdbcConnectionManager = j; + } + + public long add(Vehicle vehicle) throws PersistenceException { + String query1 = "INSERT INTO VehicleVersion (name,constructionType,type) VALUES (?,?,?)"; + String query2 = "INSERT INTO Vehicle (version,status) VALUES (?,?)"; + PreparedStatement p1 = null; + PreparedStatement p2 = null; + PreparedStatement p3 = null; + String status = "abgemeldet"; + String name = ""; + int id = -1; + try { + p1 = + jdbcConnectionManager + .getConnection() + .prepareStatement(query1, PreparedStatement.RETURN_GENERATED_KEYS); + p1.setString(1, name); + p1.setString(2, vehicle.constructionType().name()); + if (vehicle.type() == VehicleType.KTW_B) { + p1.setString(3, "KTW-B"); + } else { + p1.setString(3, vehicle.type().name()); + } + p1.executeUpdate(); + + ResultSet keyResultSet = p1.getGeneratedKeys(); + + if (keyResultSet.next()) { + id = keyResultSet.getInt(1); + } + + name = vehicle.type().name() + "-" + id; + + } catch (SQLException e) { + throw new PersistenceException("SQL Excpetion : " + e.toString()); + } finally { + try { + p1.close(); + + } catch (SQLException e) { + throw new PersistenceException("SQL Excpetion : " + e.toString()); + } + } + try { + query1 = "UPDATE VehicleVersion SET name=? WHERE id=?"; + p3 = jdbcConnectionManager.getConnection().prepareStatement(query1); + p3.setString(1, name); + p3.setInt(2, id); + p3.executeUpdate(); + } catch (SQLException e) { + throw new PersistenceException("SQL Excpetion : " + e.toString()); + } finally { + try { + p3.close(); + } catch (SQLException e) { + throw new PersistenceException("SQL Excpetion : " + e.toString()); + } + } + try { + p2 = jdbcConnectionManager.getConnection().prepareStatement(query2); + p2.setInt(1, id); + p2.setString(2, status); + p2.executeUpdate(); + } catch (SQLException e) { + throw new PersistenceException("SQL Excpetion : " + e.toString()); + } finally { + try { + p2.close(); + } catch (SQLException e) { + throw new PersistenceException("SQL Excpetion : " + e.toString()); + } + } + return id; + } + + @Override + public void update(Vehicle vehicle) throws ElementNotFoundException, PersistenceException {} + + @Override + public List list() throws PersistenceException { + PreparedStatement pstmt = null; + List result = new LinkedList<>(); + try { + pstmt = + jdbcConnectionManager + .getConnection() + .prepareStatement( + "Select * from VehicleVersion, " + + "Vehicle where VehicleVersion.id=Vehicle.version"); + pstmt.executeQuery(); + ResultSet rs = pstmt.getResultSet(); + while (rs.next()) { + Vehicle vehicle = + Vehicle.builder() + .name(rs.getString(2)) + .constructionType(ConstructionType.valueOf(rs.getString(3))) + .status(Status.valueOf(rs.getString(8))) + .id(rs.getInt(6)) + .hasNef(rs.getBoolean(5)) + .type(VehicleType.valueOf(rs.getString(4))) + .build(); + result.add(vehicle); + } + } catch (SQLException e) { + throw new PersistenceException("Die Werte konnten nicht geladen werden.", e); + } finally { + if (pstmt != null) { + try { + pstmt.close(); + } catch (SQLException e) { + throw new PersistenceException( + "Verbindung zur Datenbank konnte nicht geschlossen werden!", e); + } + } + } + return result; + } + + @Override + public void remove(long id) throws ElementNotFoundException, PersistenceException {} +} 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 index 731da6f..de7a26a 100644 --- 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 @@ -6,7 +6,7 @@ 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.VehicleDBDAO; +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; @@ -16,7 +16,7 @@ import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; import org.junit.Test; public class CarAddTestService { - private final VehicleDAO vehicleP = mock(VehicleDBDAO.class); + private final VehicleDAO vehicleP = mock(VehicleDatabaseDao.class); private final VehicleService vehicleService = new VehicleServiceImpl(vehicleP); public CarAddTestService() throws PersistenceException { -- cgit v1.2.3-70-g09d2