diff options
Diffstat (limited to 'src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung')
| -rw-r--r-- | src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/SimpleRegistrationServiceTest.java | 124 | 
1 files changed, 124 insertions, 0 deletions
| diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/SimpleRegistrationServiceTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/SimpleRegistrationServiceTest.java new file mode 100644 index 0000000..b1ef38f --- /dev/null +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/SimpleRegistrationServiceTest.java @@ -0,0 +1,124 @@ +package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service; + +import static org.junit.Assert.*; + +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; +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.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.InvalidRegistrationException; +import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidVehicleException; +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.LinkedList; +import java.util.List; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; + +public class SimpleRegistrationServiceTest { + +    @Mock RegistrationDAO daoMock; + +    @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); + +    @Rule public ExpectedException thrown = ExpectedException.none(); + +    @Test +    public void addValidRegistrationsShouldSucceed() +            throws InvalidRegistrationException, ServiceException, InvalidVehicleException { +        RegistrationService registrationService = new SimpleRegistrationService(daoMock); +        List<Registration> registrations = new LinkedList<>(); +        Vehicle vehicle = +                Vehicle.builder() +                        .id(1) +                        .name("RTW-1") +                        .constructionType(ConstructionType.HOCHDACH) +                        .type(VehicleType.RTW) +                        .status(Status.ABGEMELDET) +                        .hasNef(true) +                        .build(); +        Employee employee1 = +                Employee.builder() +                        .id(1) +                        .name("John Doe") +                        .birthday(LocalDate.now()) // incorrect, but should be irrelevant +                        .educationLevel(EducationLevel.RS) +                        .isDriver(true) +                        .isPilot(true) +                        .build(); +        Employee employee2 = +                Employee.builder() +                        .id(2) +                        .name("Nick \"Kage\" Verily") +                        .birthday(LocalDate.now()) // incorrect, but should be irrelevant +                        .educationLevel(EducationLevel.NKV) +                        .isDriver(true) +                        .isPilot(false) +                        .build(); +        Employee employee3 = +                Employee.builder() +                        .id(3) +                        .name("Nicht Arzt") +                        .birthday(LocalDate.now()) // incorrect, but should be irrelevant +                        .educationLevel(EducationLevel.NA) +                        .isDriver(false) +                        .isPilot(false) +                        .build(); +        Instant start = Instant.now(); +        Instant end = start.plus(8, ChronoUnit.HOURS); +        Registration registration1 = +                Registration.builder().start(start).end(end).employee(employee1).build(); +        Registration registration2 = +                Registration.builder().start(start).end(end).employee(employee2).build(); +        Registration registration3 = +                Registration.builder().start(start).end(end).employee(employee3).build(); +        registrations.add(registration1); +        registrations.add(registration2); +        registrations.add(registration3); +        registrationService.add(vehicle, registrations); +    } + +    @Test +    public void addOnlyOnePersonToRTWShouldFail() +            throws InvalidRegistrationException, ServiceException, InvalidVehicleException { +        thrown.expect(InvalidRegistrationException.class); +        RegistrationService registrationService = new SimpleRegistrationService(daoMock); +        List<Registration> registrations = new LinkedList<>(); +        Vehicle vehicle = +                Vehicle.builder() +                        .id(1) +                        .name("RTW-1") +                        .constructionType(ConstructionType.HOCHDACH) +                        .type(VehicleType.RTW) +                        .status(Status.ABGEMELDET) +                        .hasNef(true) +                        .build(); +        Employee employee = +                Employee.builder() +                        .id(1) +                        .name("John Doe") +                        .birthday(LocalDate.now()) // incorrect, but should be irrelevant +                        .educationLevel(EducationLevel.RS) +                        .isDriver(true) +                        .isPilot(true) +                        .build(); +        Registration registration = +                Registration.builder() +                        .start(Instant.MIN) +                        .end(Instant.MAX) +                        .employee(employee) +                        .build(); +        registrations.add(registration); +        registrationService.add(vehicle, registrations); +    } +} | 
