From 597e9416f7f81416a7fd46019ab507506aee6692 Mon Sep 17 00:00:00 2001 From: Mirna Gama Date: Fri, 5 Jan 2024 15:54:59 -0300 Subject: [PATCH] [R3] Unit test method for put doctor --- .../controllers/DoctorControllerTest.java | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/mirna/hospitalmanagementapi/unit/application/controllers/DoctorControllerTest.java b/src/test/java/com/mirna/hospitalmanagementapi/unit/application/controllers/DoctorControllerTest.java index 48d6a5b..de7d68b 100644 --- a/src/test/java/com/mirna/hospitalmanagementapi/unit/application/controllers/DoctorControllerTest.java +++ b/src/test/java/com/mirna/hospitalmanagementapi/unit/application/controllers/DoctorControllerTest.java @@ -18,6 +18,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import com.fasterxml.jackson.databind.ObjectMapper; import com.mirna.hospitalmanagementapi.domain.dtos.AddressDTO; import com.mirna.hospitalmanagementapi.domain.dtos.DoctorDTO; +import com.mirna.hospitalmanagementapi.domain.dtos.DoctorUpdatedDataDTO; import com.mirna.hospitalmanagementapi.domain.entities.Doctor; import com.mirna.hospitalmanagementapi.domain.enums.Specialty; import com.mirna.hospitalmanagementapi.domain.repositories.DoctorRepository; @@ -42,6 +43,8 @@ public class DoctorControllerTest { @Autowired private DoctorRepository doctorRepository; + private Doctor testDoctor; + @BeforeAll public void init() { DoctorDTO doctorDTO1 = new DoctorDTO("test1", "test1@gmail.com", "123456", "99999999", Specialty.ORTHOPEDICS, @@ -53,7 +56,7 @@ public class DoctorControllerTest { DoctorDTO doctorDTO3 = new DoctorDTO("test3", "test3@gmail.com", "112131", "99999999", Specialty.ORTHOPEDICS, new AddressDTO("TEST STREET", "NEIGHBORHOOD", "12345678", "CITY", "ST", null, null)); - doctorRepository.save(new Doctor(doctorDTO1)); + testDoctor = doctorRepository.save(new Doctor(doctorDTO1)); doctorRepository.save(new Doctor(doctorDTO2)); doctorRepository.save(new Doctor(doctorDTO3)); } @@ -108,4 +111,36 @@ public class DoctorControllerTest { .characterEncoding("UTF-8")) .andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()); } + + /** + * Put a valid doctor + */ + @Test + @DisplayName("Should put a valid doctor and return http status ok") + public void testPutValidDoctor() throws Exception { + + DoctorUpdatedDataDTO doctorUpdatedDataDTO = new DoctorUpdatedDataDTO(testDoctor.getId(), "updated_test", null, null); + + String doctorUpdatedDataDTOContent = mapper.writeValueAsString(doctorUpdatedDataDTO); + + mockMvc.perform(MockMvcRequestBuilders.put("/api/v1.0/doctors").contentType(MediaType.APPLICATION_JSON) + .characterEncoding("UTF-8").content(doctorUpdatedDataDTOContent)) + .andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()); + } + + /** + * Avoid putting a invalid doctor. + */ + @Test + @DisplayName("Should not put invalid doctor and return http status bad request") + public void testPutInvalidDoctor() throws Exception { + + DoctorUpdatedDataDTO doctorUpdatedDataDTO = new DoctorUpdatedDataDTO(null, "updated_test", null, null); + + String doctorUpdatedDataDTOContent = mapper.writeValueAsString(doctorUpdatedDataDTO); + + mockMvc.perform(MockMvcRequestBuilders.put("/api/v1.0/doctors").contentType(MediaType.APPLICATION_JSON) + .characterEncoding("UTF-8").content(doctorUpdatedDataDTOContent)) + .andExpect(MockMvcResultMatchers.status().isBadRequest()).andDo(MockMvcResultHandlers.print()); + } }