diff options
| author | Felix Kehrer <felix.kehrer@gmail.com> | 2018-05-07 18:53:28 +0200 | 
|---|---|---|
| committer | Felix Kehrer <felix.kehrer@gmail.com> | 2018-05-07 18:53:28 +0200 | 
| commit | be80ff84430b5f28613ec5b99cbc6b5e5d3ee45b (patch) | |
| tree | 297e92a622cc77ed8aae1d01f559df2a7f16251a /src | |
| parent | d26af6246ba85c7e163838f7a48eb31d4369cfcb (diff) | |
| download | sepm-groupproject-be80ff84430b5f28613ec5b99cbc6b5e5d3ee45b.tar.gz sepm-groupproject-be80ff84430b5f28613ec5b99cbc6b5e5d3ee45b.tar.xz sepm-groupproject-be80ff84430b5f28613ec5b99cbc6b5e5d3ee45b.zip  | |
Changed interface back to how it was before
Diffstat (limited to 'src')
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);      }  }  | 
