diff --git a/petclinicweb/pom.xml b/petclinicweb/pom.xml index 84d1d2f..ceacb6c 100644 --- a/petclinicweb/pom.xml +++ b/petclinicweb/pom.xml @@ -80,6 +80,22 @@ + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.mockito + mockito-junit-jupiter + 3.2.4 + test + \ No newline at end of file diff --git a/petclinicweb/src/test/java/com/petclinic/petclinic/controllers/OwnerControllerTest.java b/petclinicweb/src/test/java/com/petclinic/petclinic/controllers/OwnerControllerTest.java new file mode 100644 index 0000000..941fd39 --- /dev/null +++ b/petclinicweb/src/test/java/com/petclinic/petclinic/controllers/OwnerControllerTest.java @@ -0,0 +1,60 @@ +package com.petclinic.petclinic.controllers; + +import com.petclinic.petclinic.models.Owner; +import com.petclinic.petclinic.services.OwnerService; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + +import java.util.HashSet; +import java.util.Set; + +import static org.hamcrest.Matchers.hasSize; +import static org.mockito.Mockito.when; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + +@ExtendWith(MockitoExtension.class) +class OwnerControllerTest { + + @Mock + OwnerService ownerService; + + @InjectMocks + OwnerController controller; + + Set owners; + MockMvc mockMvc; + + @BeforeEach + void setUp() { + owners = new HashSet<>(); + owners.add(Owner.builder().firstName("Enes").build()); + owners.add(Owner.builder().firstName("Hasan").build()); + + mockMvc = MockMvcBuilders.standaloneSetup(controller).build(); + } + + @Test + void listOwners() throws Exception { + when(ownerService.findAll()).thenReturn(owners); + mockMvc.perform(get("/owners/")) + .andExpect(status().isOk()) + .andExpect(view().name("owners/index")) + .andExpect(model().attribute("owners", hasSize(2))); + } + + @Test + void listOwnersByIndex() throws Exception { + when(ownerService.findAll()).thenReturn(owners); + mockMvc.perform(get("/owners/index")) + .andExpect(status().isOk()) + .andExpect(view().name("owners/index")) + .andExpect(model().attribute("owners", hasSize(2))); + } +} \ No newline at end of file