From 92dc47ed81e528e9faabdde599fcc62dca1e61ef Mon Sep 17 00:00:00 2001
From: rokibulislam <rrcucse.11@gmail.com>
Date: Wed, 24 Apr 2024 21:52:04 +0200
Subject: [PATCH] updated testcase

---
 .../fi/pa165/rest/FlightControllerTest.java   | 115 +++++++++++-------
 .../rest/FlightRealizationControllerTest.java |   3 +-
 .../pa165/rest/IssueReportControllerTest.java |  69 +++++------
 .../muni/fi/pa165/utils/TestApiFactory.java   |   4 +
 4 files changed, 110 insertions(+), 81 deletions(-)

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 413d2c7..5cc42e0 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 2884447..2bce6ef 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 8609489..d511b41 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 b8e7316..670dbd2 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;
     }
-- 
GitLab