aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Kehrer <felix.kehrer@gmail.com>2018-05-07 18:53:28 +0200
committerFelix Kehrer <felix.kehrer@gmail.com>2018-05-07 18:53:28 +0200
commitbe80ff84430b5f28613ec5b99cbc6b5e5d3ee45b (patch)
tree297e92a622cc77ed8aae1d01f559df2a7f16251a
parentd26af6246ba85c7e163838f7a48eb31d4369cfcb (diff)
downloadsepm-groupproject-be80ff84430b5f28613ec5b99cbc6b5e5d3ee45b.tar.gz
sepm-groupproject-be80ff84430b5f28613ec5b99cbc6b5e5d3ee45b.tar.xz
sepm-groupproject-be80ff84430b5f28613ec5b99cbc6b5e5d3ee45b.zip
Changed interface back to how it was before
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java2
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationService.java7
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationServiceImpl.java21
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationServiceImplTest.java34
4 files changed, 53 insertions, 11 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java
index f375fe9..bf413bb 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/RegistrationWindowController.java
@@ -167,7 +167,7 @@ public class RegistrationWindowController {
.build());
}
try {
- registrationService.add(chosenVehicle, registrations);
+ registrationService.add(chosenVehicle.id(), registrations);
((Stage) lVehicles.getScene().getWindow()).close();
} catch (InvalidVehicleException e) {
// NOT THROWN ANYWHERE RIGHT NOW
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationService.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationService.java
index c20ed3c..c345a2b 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationService.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationService.java
@@ -1,7 +1,6 @@
package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service;
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Registration;
-import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle;
import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidRegistrationException;
import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException;
import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
@@ -12,14 +11,14 @@ public interface RegistrationService {
/**
* Register employee to a vehicle.
*
- * @param vehicle the target vehicle
+ * @param vehicleId the id of the target vehicle
* @param registrations that should be added to the vehicle
- * @return the id that was assigned
+ * @return the list of ids that were assigned
* @throws InvalidVehicleException if the vehicleId is invalid or does not exist
* @throws InvalidRegistrationException if the registration is invalid
* @throws ServiceException if the registration could not be persisted
*/
- List<Long> add(Vehicle vehicle, List<Registration> registrations)
+ List<Long> add(long vehicleId, List<Registration> registrations)
throws InvalidVehicleException, InvalidRegistrationException, ServiceException;
/**
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationServiceImpl.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationServiceImpl.java
index b0605f0..a267b6f 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationServiceImpl.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationServiceImpl.java
@@ -4,10 +4,12 @@ import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.Registratio
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Registration;
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.RegistrationValidator;
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.Status;
import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidRegistrationException;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -20,15 +22,30 @@ public class RegistrationServiceImpl implements RegistrationService {
private static final Logger LOG = LoggerFactory.getLogger(RegistrationServiceImpl.class);
private final RegistrationDAO registrationDAO;
+ private final VehicleService vehicleService;
@Autowired
- public RegistrationServiceImpl(RegistrationDAO registrationDAO) {
+ public RegistrationServiceImpl(RegistrationDAO registrationDAO, VehicleService vehicleService) {
this.registrationDAO = registrationDAO;
+ this.vehicleService = vehicleService;
}
@Override
- public List<Long> add(Vehicle vehicle, List<Registration> registrations)
+ public List<Long> add(long vehicleId, List<Registration> registrations)
throws InvalidVehicleException, InvalidRegistrationException, ServiceException {
+
+ Vehicle vehicle =
+ vehicleService
+ .list(EnumSet.of(Status.ABGEMELDET))
+ .stream()
+ .filter(v -> v.id() == vehicleId)
+ .findFirst()
+ .orElse(null);
+
+ if (vehicle == null) {
+ throw new ServiceException("no vehicle with this id");
+ }
+
RegistrationValidator.validate(vehicle, registrations);
try {
return registrationDAO.add(vehicle.id(), registrations);
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationServiceImplTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationServiceImplTest.java
index 7171f83..f3efbef 100644
--- a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationServiceImplTest.java
+++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/RegistrationServiceImplTest.java
@@ -1,5 +1,8 @@
package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
+
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.RegistrationDAO;
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee;
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee.EducationLevel;
@@ -14,12 +17,15 @@ import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
import java.time.Instant;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
+import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
+import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
@@ -27,14 +33,33 @@ public class RegistrationServiceImplTest {
@Mock RegistrationDAO daoMock;
+ @Mock VehicleService vehicleService;
+
@Rule public MockitoRule mockitoRule = MockitoJUnit.rule();
@Rule public ExpectedException thrown = ExpectedException.none();
+ @Before
+ public void setUp() throws ServiceException {
+ MockitoAnnotations.initMocks(this);
+ when(vehicleService.list(any()))
+ .thenReturn(
+ Arrays.asList(
+ Vehicle.builder()
+ .id(1)
+ .name("RTW-1")
+ .constructionType(ConstructionType.HOCHDACH)
+ .status(Status.ABGEMELDET)
+ .type(VehicleType.RTW)
+ .hasNef(true)
+ .build()));
+ }
+
@Test
public void addValidRegistrationsShouldSucceed()
throws InvalidRegistrationException, ServiceException, InvalidVehicleException {
- RegistrationService registrationService = new RegistrationServiceImpl(daoMock);
+ RegistrationService registrationService =
+ new RegistrationServiceImpl(daoMock, vehicleService);
List<Registration> registrations = new LinkedList<>();
Vehicle vehicle =
Vehicle.builder()
@@ -83,14 +108,15 @@ public class RegistrationServiceImplTest {
registrations.add(registration1);
registrations.add(registration2);
registrations.add(registration3);
- registrationService.add(vehicle, registrations);
+ registrationService.add(vehicle.id(), registrations);
}
@Test
public void addOnlyOnePersonToRTWShouldFail()
throws InvalidRegistrationException, ServiceException, InvalidVehicleException {
thrown.expect(InvalidRegistrationException.class);
- RegistrationService registrationService = new RegistrationServiceImpl(daoMock);
+ RegistrationService registrationService =
+ new RegistrationServiceImpl(daoMock, vehicleService);
List<Registration> registrations = new LinkedList<>();
Vehicle vehicle =
Vehicle.builder()
@@ -117,6 +143,6 @@ public class RegistrationServiceImplTest {
.employee(employee)
.build();
registrations.add(registration);
- registrationService.add(vehicle, registrations);
+ registrationService.add(vehicle.id(), registrations);
}
}