From 9c4956db538160bdec702868e735036837879333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20Gul=C4=8D=C3=ADkov=C3=A1?= <xgulcik@fi.muni.cz> Date: Sun, 16 Apr 2023 19:52:15 +0200 Subject: [PATCH] test_for_driver --- .../driver/service/DriverServiceImpl.java | 1 + .../driver/rest/DriverControllerTest.java | 35 ++---- .../pa165/driver/rest/DriverServiceTest.java | 102 ++++++++++++++++++ .../pa165/driver/rest/DriverTestUtil.java | 34 ++++++ 4 files changed, 146 insertions(+), 26 deletions(-) create mode 100644 driver/src/test/java/cz/muni/pa165/driver/rest/DriverServiceTest.java create mode 100644 driver/src/test/java/cz/muni/pa165/driver/rest/DriverTestUtil.java diff --git a/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java b/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java index e6b0e4b3..db4a956e 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java +++ b/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java @@ -94,6 +94,7 @@ public class DriverServiceImpl implements DriverService { * @return all stored drivers dto list */ public List<DriverInsightDto> getAllDrivers() { + System.out.println(); return driverRepository.findAll() .stream() .map(driverMapper::convertToInsightDto) diff --git a/driver/src/test/java/cz/muni/pa165/driver/rest/DriverControllerTest.java b/driver/src/test/java/cz/muni/pa165/driver/rest/DriverControllerTest.java index ec3f5d0a..269f0986 100644 --- a/driver/src/test/java/cz/muni/pa165/driver/rest/DriverControllerTest.java +++ b/driver/src/test/java/cz/muni/pa165/driver/rest/DriverControllerTest.java @@ -9,12 +9,10 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.fasterxml.jackson.databind.ObjectMapper; -import cz.muni.pa165.common_library.dtos.DriverAddDto; import cz.muni.pa165.common_library.dtos.DriverInsightDto; import cz.muni.pa165.common_library.dtos.DriverResponseDto; import cz.muni.pa165.common_library.dtos.DriverUpdateDto; import cz.muni.pa165.driver.service.DriverService; -import java.util.HashMap; import java.util.List; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -39,7 +37,7 @@ class DriverControllerTest { @Test void driverAddTest() throws Exception { - var driver = getAddDriver(); + var driver = DriverTestUtil.getAddDriver(); given(driverService.addDriver(driver)).willReturn(new DriverResponseDto(1L)); String response = mockMvc.perform(post("/driver/add") @@ -54,7 +52,7 @@ class DriverControllerTest { @Test void badRequestTest() throws Exception { - var driver = getAddDriver(); + var driver = DriverTestUtil.getAddDriver(); given(driverService.addDriver(driver)).willReturn(new DriverResponseDto(1L)); mockMvc.perform(post("/driver/add") @@ -67,8 +65,8 @@ class DriverControllerTest { @Test void driverGetAllTest() throws Exception { - var driver = getAddDriver(); - given(driverService.getAllDrivers()).willReturn(List.of(getInsightDriver())); + var driver = DriverTestUtil.getAddDriver(); + given(driverService.getAllDrivers()).willReturn(List.of(DriverTestUtil.getInsightDriver())); String response = mockMvc.perform(get("/driver/get/all")) .andExpect(status().isOk()) @@ -105,8 +103,8 @@ class DriverControllerTest { @Test void driverGetByIdTest() throws Exception { - var driver = getAddDriver(); - given(driverService.getDriverById(anyLong())).willReturn(getInsightDriver()); + var driver = DriverTestUtil.getAddDriver(); + given(driverService.getDriverById(anyLong())).willReturn(DriverTestUtil.getInsightDriver()); String response = mockMvc.perform(get("/driver/get/id=1")) .andExpect(status().isOk()) @@ -122,8 +120,9 @@ class DriverControllerTest { @Test void driverUpdateByIdTest() throws Exception { - DriverUpdateDto driverUpdateDto = getUpdateDriver(); - given(driverService.updateDriverById(1L, driverUpdateDto)).willReturn(new DriverResponseDto(1L)); + DriverUpdateDto driverUpdateDto = DriverTestUtil.getUpdateDriver(); + given(driverService.updateDriverById(1L, driverUpdateDto)).willReturn( + new DriverResponseDto(1L)); String response = mockMvc.perform(put("/driver/update/id=1") .contentType(MediaType.APPLICATION_JSON) @@ -133,20 +132,4 @@ class DriverControllerTest { var driverResponseDto = objectMapper.readValue(response, DriverResponseDto.class); Assertions.assertEquals(1L, driverResponseDto.id()); } - - private DriverAddDto getAddDriver() { - var driver = new DriverAddDto("Name", - "Surname", "Nationality", new HashMap<>()); - return driver; - } - - private DriverInsightDto getInsightDriver() { - return new DriverInsightDto(1L, "Name", - "Surname", "Nationality", new HashMap<>()); - } - - private DriverUpdateDto getUpdateDriver() { - return new DriverUpdateDto("Name", - "Surname", "Nationality", new HashMap<>()); - } } diff --git a/driver/src/test/java/cz/muni/pa165/driver/rest/DriverServiceTest.java b/driver/src/test/java/cz/muni/pa165/driver/rest/DriverServiceTest.java new file mode 100644 index 00000000..a06649ea --- /dev/null +++ b/driver/src/test/java/cz/muni/pa165/driver/rest/DriverServiceTest.java @@ -0,0 +1,102 @@ +package cz.muni.pa165.driver.rest; + +import static org.mockito.ArgumentMatchers.anyLong; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.when; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import com.fasterxml.jackson.databind.ObjectMapper; +import cz.muni.pa165.common_library.dtos.DriverAddDto; +import cz.muni.pa165.common_library.dtos.DriverInsightDto; +import cz.muni.pa165.common_library.dtos.DriverResponseDto; +import cz.muni.pa165.driver.data.model.Driver; +import cz.muni.pa165.driver.data.repository.DriverRepository; +import cz.muni.pa165.driver.service.DriverService; +import java.util.HashMap; +import java.util.List; +import java.util.Optional; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; + +@SpringBootTest +@AutoConfigureMockMvc +public class DriverServiceTest { + + @Autowired + private MockMvc mockMvc; + + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private DriverService driverService; + + @Mock + private DriverRepository driverRepository; + + @Test + void driverAddTest() throws Exception { + + var driverAddDTO = DriverTestUtil.getAddDriver(); + var driverDao = DriverTestUtil.getDaoDriver(); + + given(driverRepository.save(driverDao)).willReturn(driverDao); + + String response = mockMvc.perform(post("/driver/add") + .contentType(MediaType.APPLICATION_JSON) + .content(objectMapper.writeValueAsString(driverAddDTO))) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + DriverResponseDto driverResponseDto = objectMapper.readValue(response, DriverResponseDto.class); + Assertions.assertEquals(driverDao.getId(), driverResponseDto.id()); + } + + @Test + void driverGetAllTest() throws Exception { + + var driver = DriverTestUtil.getAddDriver(); + //given(driverRepository.findAll()).willReturn(List.of(DriverTestUtil.getDaoDriver())); + when(driverRepository.findAll()).thenReturn(List.of(DriverTestUtil.getDaoDriver())); + + String response = mockMvc.perform(get("/driver/get/all")) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + var driverResponseDto = objectMapper.readValue(response, DriverInsightDto[].class); + Assertions.assertAll( + () -> Assertions.assertEquals(1L, driverResponseDto[0].id()), + () -> Assertions.assertEquals(driver.name(), driverResponseDto[0].name()), + () -> Assertions.assertEquals(driver.surname(), driverResponseDto[0].surname()), + () -> Assertions.assertEquals(driver.characteristics(), + driverResponseDto[0].characteristics()) + ); + } + + @Test + void driverGetByIdTest() throws Exception { + + var driver = DriverTestUtil.getAddDriver(); + given(driverRepository.findById(anyLong())).willReturn(Optional.of(DriverTestUtil.getDaoDriver())); + //when(driverRepository.findById(1L)).thenReturn(Optional.of(DriverTestUtil.getDaoDriver())); + + String response = mockMvc.perform(get("/driver/get/id=1")) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + var driverResponseDto = objectMapper.readValue(response, DriverInsightDto.class); + Assertions.assertAll( + () -> Assertions.assertEquals(1L, driverResponseDto.id()), + () -> Assertions.assertEquals(driver.name(), driverResponseDto.name()), + () -> Assertions.assertEquals(driver.surname(), driverResponseDto.surname()), + () -> Assertions.assertEquals(driver.characteristics(), + driverResponseDto.characteristics()) + ); + } + +} diff --git a/driver/src/test/java/cz/muni/pa165/driver/rest/DriverTestUtil.java b/driver/src/test/java/cz/muni/pa165/driver/rest/DriverTestUtil.java new file mode 100644 index 00000000..8a82658b --- /dev/null +++ b/driver/src/test/java/cz/muni/pa165/driver/rest/DriverTestUtil.java @@ -0,0 +1,34 @@ +package cz.muni.pa165.driver.rest; + +import cz.muni.pa165.common_library.dtos.DriverAddDto; +import cz.muni.pa165.common_library.dtos.DriverInsightDto; +import cz.muni.pa165.common_library.dtos.DriverUpdateDto; +import cz.muni.pa165.driver.data.model.Driver; +import java.util.HashMap; + +public class DriverTestUtil { + + public static DriverAddDto getAddDriver() { + var driver = new DriverAddDto("Name", + "Surname", "Nationality", new HashMap<>()); + return driver; + } + + public static DriverInsightDto getInsightDriver() { + return new DriverInsightDto(1L, "Name", + "Surname", "Nationality", new HashMap<>()); + } + + public static DriverUpdateDto getUpdateDriver() { + return new DriverUpdateDto("Name", + "Surname", "Nationality", new HashMap<>()); + } + public static Driver getDaoDriver() { + return Driver.builder() + .name("name") + .id(1L) + .surname("surname") + .characteristics(new HashMap<>()) + .build(); + } +} -- GitLab