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 413d2c7a25cbebe675a6b86111f84aa2f2561128..5cc42e0c08d20fb12736dfe4cc40815d224734d5 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 @@ -6,6 +6,11 @@ import cz.muni.fi.pa165.exception.FlightNotFoundException; import cz.muni.fi.pa165.facade.FlightFacade; import cz.muni.fi.pa165.utils.ObjectConverter; import cz.muni.fi.pa165.utils.TestApiFactory; + + +import org.springframework.test.web.servlet.RequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; + import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; @@ -13,17 +18,21 @@ import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.RequestBuilder; -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; + import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.springframework.mock.http.server.reactive.MockServerHttpRequest.put; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + @WebMvcTest(controllers = FlightController.class) public class FlightControllerTest { @@ -35,8 +44,11 @@ public class FlightControllerTest { @Test void findById_flightFound_returnflight() throws Exception { -// // UUID id = new UUID(0x1, 0xf); - UUID id = UUID.fromString("00000000-0000-0001-0000-00000000000f"); + UUID id = new UUID(0x1, 0xf); + UUID planeId = new UUID(0x1, 0xf); + UUID destination = new UUID(0x2, 0xf); + UUID origin = new UUID(0x3, 0xf); +// UUID id = UUID.fromString("00000000-0000-0001-0000-00000000000f"); Mockito.when(flightFacade.getFlight(id)).thenReturn(TestApiFactory.getFlightEntity()); RequestBuilder request = MockMvcRequestBuilders.get("/flights/{id}", id).accept(MediaType.APPLICATION_JSON); @@ -47,12 +59,12 @@ public class FlightControllerTest { .getContentAsString(StandardCharsets.UTF_8); Flight response = ObjectConverter.convertJsonToObject(responseJson, Flight.class); assertThat(responseJson).isEqualTo("{" + - "\"id\":\"00000000-0000-0001-0000-00000000000f\"," + - "\"planeId\":\"planeId\"," + - "\"pilotIds\":\"pilotIds\"," + - "\"stewardIds\":\"stewardIds\"," + - "\"origin\":\"origin\"," + - "\"destination\":\"destination\"" + + "\"id\":\""+ id +"\"," + + "\"planeId\":\"" + planeId + "\"," + + "\"pilotIds\":null," + + "\"stewardIds\":null," + + "\"origin\":\"" +origin+ "\"," + + "\"destination\":\"" + destination + "\"" + "}" ); assertThat(response).isEqualTo(TestApiFactory.getFlightEntity()); @@ -70,51 +82,62 @@ public class FlightControllerTest { @Test - void updateflight_flightFound_returnsIssueReport() throws Exception { - UUID id = new UUID(0x1, 0xf); + void updateflight_flightFound_returnsflight() throws Exception { + UUID id = new UUID(0x1, 0xf); + UUID planeId = new UUID(0x1, 0xf); + UUID destination = new UUID(0x2, 0xf); + UUID origin = new UUID(0x3, 0xf); cz.muni.fi.pa165.api.flight.Flight updatedFlight = TestApiFactory.getFlightEntity(); Mockito.when(flightFacade.updateFlight( Mockito.eq(id), Mockito.any(FlightRequest.class))).thenReturn(updatedFlight); String requestJson = "{" + - "\"id\":\"" + id + "\"," + - "\"planeId\":\"planeId\"," + - "\"pilotIds\":\"pilotIds\"," + - "\"stewardIds\":\"stewardIds\"," + - "\"origin\":\"origin\"," + - "\"destination\":\"destination\"" + - "}"; - - // String requestJson = "{\"id\":\"" + id + "\",\"name\":\"UpdatedName\",\"surname\":\"UpdatedSurname\",\"gender\":false,\"dateOfBirth\":\"1990-01-01\",\"hired\":\"2015-01-01\",\"terminated\":\"2022-01-01\"}"; -// String responseJson = mockMvc.perform(put("/flights/{id}", id) -// .contentType(MediaType.APPLICATION_JSON) -// .content(requestJson) -// ) -// .andExpect(status().isOk()) -// .andReturn() -// .getResponse() -// .getContentAsString(StandardCharsets.UTF_8); -// -// Flight response = ObjectConverter.convertJsonToObject(responseJson, Flight.class); -// -// assertThat(response).isEqualTo(updatedFlight); -// -// Mockito.verify(flightFacade, Mockito.times(1)).updateFlight(Mockito.eq(id), Mockito.any(FlightRequest.class)); + "\"planeId\":\"" + planeId + "\"," + + "\"pilotIds\":null," + + "\"stewardIds\":null," + + "\"origin\":\"" +origin+ "\"," + + "\"destination\":\"" + destination + "\"" + + "}"; + + + String responseJson = mockMvc.perform(put("/flights/{id}", id) + .contentType(MediaType.APPLICATION_JSON) + .content(requestJson)) + .andExpect(status().isOk()) + .andReturn() + .getResponse() + .getContentAsString(StandardCharsets.UTF_8); + + Flight response = ObjectConverter.convertJsonToObject(responseJson, Flight.class); + assertThat(response).isEqualTo(updatedFlight); + Mockito.verify(flightFacade, Mockito.times(1)).updateFlight(Mockito.eq(id), Mockito.any(FlightRequest.class)); } @Test public void updateflight_flightNotFound_throws404() throws Exception { UUID id = UUID.randomUUID(); + UUID planeId = new UUID(0x1, 0xf); + UUID destination = new UUID(0x2, 0xf); + UUID origin = new UUID(0x3, 0xf); + Mockito.when(flightFacade.updateFlight(Mockito.eq(id), Mockito.any())).thenThrow(new FlightNotFoundException()); RequestBuilder request = MockMvcRequestBuilders.delete("/flights/{id}", id).accept(MediaType.APPLICATION_JSON); - -// mockMvc.perform(put("/airport/{id}", id) -// .contentType(MediaType.APPLICATION_JSON) -// .content("{\"name\":\"UpdatedName\",\"capacity\":\"Large\",\"landingPrice\":1500.0,\"longitude\":-73.935242,\"latitude\":40.73061,\"city\":\"New York\",\"country\":\"USA\"}")) -// .andExpect(status().isNotFound()); -// -// Mockito.verify(flightFacade, Mockito.times(1)).updateFlight(Mockito.eq(id), Mockito.any(FlightRequest.class)); + String requestJson = + "{" + + "\"planeId\":\"" + planeId + "\"," + + "\"pilotIds\":null," + + "\"stewardIds\":null," + + "\"origin\":\"" +origin+ "\"," + + "\"destination\":\"" + destination + "\"" + + "}"; + + mockMvc.perform(put("/flights/{id}", id) + .contentType(MediaType.APPLICATION_JSON) + .content(requestJson)) + .andExpect(status().isNotFound()); + + Mockito.verify(flightFacade, Mockito.times(1)).updateFlight(Mockito.eq(id), Mockito.any(FlightRequest.class)); } @Test diff --git a/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/FlightRealizationControllerTest.java b/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/FlightRealizationControllerTest.java index 2884447b37404201642f83753c11306dfbe8d015..2bce6efbb29ccbe0faa548be8d3b0ae9af7fb055 100644 --- a/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/FlightRealizationControllerTest.java +++ b/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/FlightRealizationControllerTest.java @@ -44,7 +44,8 @@ public class FlightRealizationControllerTest { @Test void findById_flightRelizationFound_returnsflightRelization() throws Exception { - UUID id = UUID.fromString("00000000-0000-0001-0000-00000000000f"); +// UUID id = UUID.fromString("00000000-0000-0001-0000-00000000000f"); + UUID id = new UUID(0x1, 0xf); Mockito.when(flightRealizationFacade.getFlightRealization(id)).thenReturn(TestApiFactory.getFlightRealizationEntity()); RequestBuilder request = MockMvcRequestBuilders.get("/flightrelization/{id}", id).accept(MediaType.APPLICATION_JSON); diff --git a/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/IssueReportControllerTest.java b/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/IssueReportControllerTest.java index 8609489e6a770cd525a3fc36b3168d75fff88af3..d511b418dbc39f2d798b6203cbe70b95403eb56c 100644 --- a/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/IssueReportControllerTest.java +++ b/airports-flight-service/src/test/java/cz/muni/fi/pa165/rest/IssueReportControllerTest.java @@ -2,13 +2,11 @@ package cz.muni.fi.pa165.rest; import cz.muni.fi.pa165.api.flight.IssueReport; import cz.muni.fi.pa165.api.flight.requests.IssueReportRequest; -import cz.muni.fi.pa165.dao.Flight; import cz.muni.fi.pa165.exception.IssueReportNotFoundException; -import cz.muni.fi.pa165.facade.FlightFacade; import cz.muni.fi.pa165.facade.IssueReportFacade; import cz.muni.fi.pa165.utils.ObjectConverter; import cz.muni.fi.pa165.utils.TestApiFactory; -import org.junit.jupiter.api.BeforeEach; + import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; @@ -18,15 +16,14 @@ import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.RequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import java.nio.charset.StandardCharsets; import java.util.UUID; -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.springframework.mock.http.server.reactive.MockServerHttpRequest.put; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -53,7 +50,15 @@ public class IssueReportControllerTest { .getContentAsString(StandardCharsets.UTF_8); IssueReport response = ObjectConverter.convertJsonToObject(responseJson, IssueReport.class); -// assertThat(responseJson).isEqualTo("{\"id\":\"00000000-0000-0001-0000-00000000000f\",\"name\":\"Name\",\"surname\":\"Surname\",\"gender\":true,\"dateOfBirth\":\"1980-05-15\",\"hired\":\"2010-05-15\",\"terminated\":null}"); + + assertThat(responseJson).isEqualTo("{" + + "\"id\":\""+ id +"\"," + + "\"planeId\":\"" + id + "\"," + + "\"flightEncountered\":\"" +id+ "\"," + + "\"description\":\"description\"" + + "}" + ); + assertThat(response).isEqualTo(TestApiFactory.getIssueReport()); } @@ -67,35 +72,31 @@ public class IssueReportControllerTest { Mockito.verify(issueReportFacade, Mockito.times(1)).getIssueReport(id); } - - - @Test - public void testUpdateIssueReport() throws Exception { - UUID id = new UUID(0x1, 0xf); - RequestBuilder request = MockMvcRequestBuilders.put("/issuereports/{id}", id).accept(MediaType.APPLICATION_JSON); - String responseJson = mockMvc.perform(request).andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); - } - @Test void updateIssueReport_IssueReportFound_returnsIssueReport() throws Exception { UUID id = new UUID(0x1, 0xf); IssueReport updatedIssueReport = TestApiFactory.getIssueReport(); Mockito.when(issueReportFacade.updateIssueReport(Mockito.eq(id), Mockito.any(IssueReportRequest.class))).thenReturn(updatedIssueReport); - String requestJson = "{\"id\":\"" + id + "\",\"name\":\"UpdatedName\",\"surname\":\"UpdatedSurname\",\"gender\":false,\"dateOfBirth\":\"1990-01-01\",\"hired\":\"2015-01-01\",\"terminated\":\"2022-01-01\"}"; - -// String responseJson = mockMvc.perform(put("/issuereports/{id}", id) -// .contentType(MediaType.APPLICATION_JSON) -// .content(requestJson) -// ) -// .andExpect(status().isOk()) -// .andReturn() -// .getResponse() -// .getContentAsString(StandardCharsets.UTF_8); -// -// IssueReport response = ObjectConverter.convertJsonToObject(responseJson, IssueReport.class); -// assertThat(response).isEqualTo(updatedIssueReport); -// Mockito.verify(issueReportFacade, Mockito.times(1)).updateIssueReport(Mockito.eq(id), Mockito.any(IssueReportRequest.class)); + String requestJson = + "{" + + "\"id\":\""+ id +"\"," + + "\"planeId\":\"" + id + "\"," + + "\"flightEncountered\":\"" +id+ "\"," + + "\"description\":\"description\"" + + "}"; + String responseJson = mockMvc.perform(put("/issuereports/{id}", id) + .contentType(MediaType.APPLICATION_JSON) + .content(requestJson) + ) + .andExpect(status().isOk()) + .andReturn() + .getResponse() + .getContentAsString(StandardCharsets.UTF_8); + + IssueReport response = ObjectConverter.convertJsonToObject(responseJson, IssueReport.class); + assertThat(response).isEqualTo(updatedIssueReport); + Mockito.verify(issueReportFacade, Mockito.times(1)).updateIssueReport(Mockito.eq(id), Mockito.any(IssueReportRequest.class)); } @@ -103,8 +104,8 @@ public class IssueReportControllerTest { public void updateIssueReport_IssueReportNotFound_throws404() throws Exception { UUID id = UUID.randomUUID(); Mockito.when(issueReportFacade.updateIssueReport(Mockito.eq(id), Mockito.any(IssueReportRequest.class))).thenThrow(new IssueReportNotFoundException()); - RequestBuilder request = MockMvcRequestBuilders.delete("/issuereports/{id}", id).accept(MediaType.APPLICATION_JSON); - mockMvc.perform(request).andExpect(status().isOk()); + RequestBuilder request = MockMvcRequestBuilders.put("/issuereports/{id}", id).accept(MediaType.APPLICATION_JSON); + mockMvc.perform(request).andExpect(status().isNotFound()); Mockito.verify(issueReportFacade, Mockito.times(1)).updateIssueReport(Mockito.eq(id), Mockito.any(IssueReportRequest.class)); } 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 b8e73169ceb025c6a221479895c76d9811894d72..670dbd2a0eed6e4bd193fec1bc39ab02b1a4a977 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 @@ -24,6 +24,7 @@ public class TestApiFactory { flight.setPlaneId(id); flight.setDestination(new UUID(0x2, 0xf)); flight.setOrigin(new UUID(0x3, 0xf)); + flight.setId(id); return flight; } @@ -38,15 +39,18 @@ public class TestApiFactory { flightRealization.setReport("report"); flightRealization.setDuration(Duration.ofHours(1)); flightRealization.setKilometersFlown(850); + flightRealization.setId(id); return flightRealization; } public static IssueReport getIssueReport() { + UUID id = new UUID(0x1, 0xf); IssueReport issueReport = new IssueReport(); issueReport.setFlightEncountered(new UUID(0x1, 0xf)); issueReport.setDescription("description"); issueReport.setPlaneId(new UUID(0x1, 0xf)); + issueReport.setId(id); return issueReport; }