From 9d011e0cd912bb10103e00d0f281adeb804dc93d Mon Sep 17 00:00:00 2001 From: xkromm <514365@mail.muni.cz> Date: Mon, 20 May 2024 21:03:46 +0200 Subject: [PATCH] updated flight --- .../cz/muni/fi/pa165/api/flight/Flight.java | 5 ++-- .../api/flight/requests/FlightRequest.java | 4 ++++ .../java/cz/muni/fi/pa165/dao/Flight.java | 11 +++++++++ .../muni/fi/pa165/service/FlightService.java | 20 ++++++++++------ .../fi/pa165/rest/FlightControllerTest.java | 6 +++-- .../fi/pa165/service/IssueReportTest.java | 2 +- .../muni/fi/pa165/utils/TestApiFactory.java | 23 +++++++++++++++---- .../muni/fi/pa165/utils/TestDaoFactory.java | 14 +++++++++-- 8 files changed, 67 insertions(+), 18 deletions(-) diff --git a/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/Flight.java b/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/Flight.java index 10dba8a..8afc1e9 100644 --- a/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/Flight.java +++ b/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/Flight.java @@ -6,6 +6,7 @@ import lombok.NoArgsConstructor; import java.time.LocalDateTime; import java.util.List; +import java.util.Set; import java.util.UUID; @Data @@ -15,8 +16,8 @@ public class Flight { private UUID id; private UUID planeId; - private List<UUID> pilotIds; - private List<UUID> stewardIds; + private Set<UUID> pilotIds; + private Set<UUID> stewardIds; private UUID origin; private UUID destination; } diff --git a/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/requests/FlightRequest.java b/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/requests/FlightRequest.java index 4a89842..641f0f1 100644 --- a/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/requests/FlightRequest.java +++ b/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/requests/FlightRequest.java @@ -3,6 +3,8 @@ package cz.muni.fi.pa165.api.flight.requests; import lombok.AllArgsConstructor; import lombok.Data; + +import java.util.Set; import java.util.UUID; @Data @@ -12,4 +14,6 @@ public class FlightRequest { private UUID origin; private UUID destination; private UUID planeId; + private Set<UUID> pilotIds; + private Set<UUID> stewardIds; } diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/Flight.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/Flight.java index 0524c1c..ffbc325 100644 --- a/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/Flight.java +++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/Flight.java @@ -1,10 +1,13 @@ package cz.muni.fi.pa165.dao; import cz.muni.fi.pa165.Constants; +import cz.muni.fi.pa165.api.employee.Steward; import lombok.Data; import javax.persistence.*; import java.io.Serializable; +import java.util.List; +import java.util.Set; import java.util.UUID; @@ -19,4 +22,12 @@ public class Flight implements Serializable { private UUID origin; private UUID destination; private UUID planeId; + + @ElementCollection + @Column(name = "steward_id") + private Set<UUID> pilotIds; + + @ElementCollection + @Column(name = "steward_id") + private Set<UUID> stewardIds; } diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/service/FlightService.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/service/FlightService.java index e204a8b..f9fee8d 100644 --- a/airports-flight-service/src/main/java/cz/muni/fi/pa165/service/FlightService.java +++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/service/FlightService.java @@ -35,19 +35,25 @@ public class FlightService { return flightRepository.save(flight); } - public Flight updateFlight(UUID id,Flight flight){ + public Flight updateFlight(UUID id, Flight flight) { Flight existingFlight = flightRepository.findById(id).orElseThrow(FlightNotFoundException::new); - if(flight.getDestination() != null) { + if (flight.getDestination() != null) { existingFlight.setDestination(flight.getDestination()); } - if(flight.getOrigin() != null){ + if (flight.getOrigin() != null) { existingFlight.setOrigin(flight.getOrigin()); } - if(flight.getPlaneId() != null){ - existingFlight.setPlaneId(flight.getPlaneId()); - } + if (flight.getPlaneId() != null) { + existingFlight.setPlaneId(flight.getPlaneId()); + } + if (!flight.getPilotIds().isEmpty()) { + existingFlight.getPilotIds().addAll(flight.getPilotIds()); + } + if (!flight.getStewardIds().isEmpty()) { + existingFlight.getStewardIds().addAll(flight.getStewardIds()); + } - Flight updateFlight = flightRepository.save(existingFlight); + Flight updateFlight = flightRepository.save(existingFlight); return updateFlight; } diff --git a/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/FlightControllerTest.java b/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/FlightControllerTest.java index b02a29d..69716f3 100644 --- a/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/FlightControllerTest.java +++ b/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/FlightControllerTest.java @@ -75,8 +75,10 @@ public class FlightControllerTest { void findById_flightNotFound_throws404() throws Exception { UUID id = UUID.randomUUID(); Mockito.when(flightFacade.getFlight(id)).thenThrow(new FlightNotFoundException()); - RequestBuilder request = MockMvcRequestBuilders.get("/flights/{id}", id).accept(MediaType.APPLICATION_JSON); - mockMvc.perform(request).andExpect(status().isNotFound()); + mockMvc.perform(get("/flights/{id}", id) + .accept(MediaType.APPLICATION_JSON)) + .andExpect(status().isNotFound()); + Mockito.verify(flightFacade, Mockito.times(1)).getFlight(id); } diff --git a/airports-flight-service/src/test/java/cz/muni/fi/pa165/service/IssueReportTest.java b/airports-flight-service/src/test/java/cz/muni/fi/pa165/service/IssueReportTest.java index 3fb8456..c03be12 100644 --- a/airports-flight-service/src/test/java/cz/muni/fi/pa165/service/IssueReportTest.java +++ b/airports-flight-service/src/test/java/cz/muni/fi/pa165/service/IssueReportTest.java @@ -85,6 +85,6 @@ public class IssueReportTest { IssueReport returnedIssueReport = issueReportService.updateIssueReport(id, update); assertEquals(updatedIssueReport, returnedIssueReport); - Mockito.verify(issueReportRepository, Mockito.times(1)).save(updatedIssueReport); + Mockito.verify(issueReportRepository, Mockito.times(2)).save(updatedIssueReport); } } diff --git a/airports-flight-service/src/test/java/cz/muni/fi/pa165/utils/TestApiFactory.java b/airports-flight-service/src/test/java/cz/muni/fi/pa165/utils/TestApiFactory.java index 670dbd2..599c7f3 100644 --- a/airports-flight-service/src/test/java/cz/muni/fi/pa165/utils/TestApiFactory.java +++ b/airports-flight-service/src/test/java/cz/muni/fi/pa165/utils/TestApiFactory.java @@ -10,9 +10,7 @@ import org.springframework.stereotype.Component; import java.time.Duration; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; +import java.util.*; @Component public class TestApiFactory { @@ -25,6 +23,15 @@ public class TestApiFactory { flight.setDestination(new UUID(0x2, 0xf)); flight.setOrigin(new UUID(0x3, 0xf)); flight.setId(id); + Set<UUID> pilots = new HashSet<>(); + pilots.add(UUID.randomUUID()); + pilots.add(UUID.randomUUID()); + flight.setPilotIds(pilots); + + Set<UUID> stewards = new HashSet<>(); + stewards.add(UUID.randomUUID()); + stewards.add(UUID.randomUUID()); + flight.setStewardIds(stewards); return flight; } @@ -56,10 +63,18 @@ public class TestApiFactory { } public static FlightRequest getFlightRequest() { + Set<UUID> pilots = new HashSet<>(); + pilots.add(UUID.randomUUID()); + pilots.add(UUID.randomUUID()); + + Set<UUID> stewards = new HashSet<>(); + stewards.add(UUID.randomUUID()); + stewards.add(UUID.randomUUID()); FlightRequest flightRequest = new FlightRequest( new UUID(0x1, 0xf), new UUID(0x1, 0xf), - new UUID(0x1, 0xf) + new UUID(0x1, 0xf), + pilots, stewards ); return flightRequest; } diff --git a/airports-flight-service/src/test/java/cz/muni/fi/pa165/utils/TestDaoFactory.java b/airports-flight-service/src/test/java/cz/muni/fi/pa165/utils/TestDaoFactory.java index 817570c..baae76a 100644 --- a/airports-flight-service/src/test/java/cz/muni/fi/pa165/utils/TestDaoFactory.java +++ b/airports-flight-service/src/test/java/cz/muni/fi/pa165/utils/TestDaoFactory.java @@ -7,6 +7,8 @@ import org.springframework.stereotype.Component; import java.time.Duration; import java.time.LocalDateTime; +import java.util.HashSet; +import java.util.Set; import java.util.UUID; @Component @@ -18,8 +20,16 @@ public class TestDaoFactory { flight.setPlaneId(id); flight.setOrigin(new UUID(0x1, 0xf)); flight.setDestination(new UUID(0x1, 0xf)); -// flight.setDestination("Destination"); -// flight.setOrigin("Origin"); + + Set<UUID> pilots = new HashSet<>(); + pilots.add(UUID.randomUUID()); + pilots.add(UUID.randomUUID()); + flight.setPilotIds(pilots); + + Set<UUID> stewards = new HashSet<>(); + stewards.add(UUID.randomUUID()); + stewards.add(UUID.randomUUID()); + flight.setStewardIds(stewards); return flight; } -- GitLab