diff --git a/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTest.java b/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTest.java index 582fbebe3..ebbf77b15 100644 --- a/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTest.java +++ b/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTest.java @@ -130,3 +130,57 @@ class VetControllerTest { } } +package org.springframework.samples.petclinic.vet; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + +import java.util.Arrays; + +import static org.mockito.BDDMockito.given; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +class VetControllerTest { + + @Mock + private VetRepository vetRepository; + + @InjectMocks + private VetController vetController; + + private MockMvc mockMvc; + + @BeforeEach + void setUp() { + MockitoAnnotations.openMocks(this); + mockMvc = MockMvcBuilders.standaloneSetup(vetController).build(); + } + + @Test + void testShowResourcesVetList() throws Exception { + Vet vet1 = new Vet(); + vet1.setId(1); + vet1.setFirstName("James"); + vet1.setLastName("Carter"); + Vet vet2 = new Vet(); + vet2.setId(2); + vet2.setFirstName("Helen"); + vet2.setLastName("Leary"); + + given(vetRepository.findAll()).willReturn(Arrays.asList(vet1, vet2)); + + mockMvc.perform(get("/vets") + .accept(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON)) + .andExpect(content().json("{"vetList":[{"id":1,"firstName":"James","lastName":"Carter","specialties":[]},{"id":2,"firstName":"Helen","lastName":"Leary","specialties":[]}]}", true)); + } +}