diff --git a/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTest.java b/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTest.java new file mode 100644 index 000000000..ac7adb9a5 --- /dev/null +++ b/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTest.java @@ -0,0 +1,55 @@ +package org.springframework.samples.petclinic.vet; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +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.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.ui.Model; +import java.util.Collections; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.verify; + +@ExtendWith(MockitoExtension.class) +class VetControllerTest { + + @Mock + private VetRepository vetRepository; + + @Mock + private Model model; + + @InjectMocks + private VetController vetController; + + @BeforeEach + void setUp() { + } + + @Test + @DisplayName("Test showVetList with pagination") + void testShowVetListWithPagination() { + int page = 1; + Pageable pageable = PageRequest.of(page - 1, 5); + Page paginatedVets = new PageImpl<>(Collections.emptyList(), pageable, 0); + + doReturn(paginatedVets).when(vetRepository).findAll(pageable); + + String viewName = vetController.showVetList(page, model); + + assertThat(viewName).isEqualTo("vets/vetList"); + verify(vetRepository).findAll(pageable); + verify(model).addAttribute("currentPage", page); + verify(model).addAttribute("totalPages", paginatedVets.getTotalPages()); + verify(model).addAttribute("totalItems", paginatedVets.getTotalElements()); + verify(model).addAttribute("listVets", paginatedVets.getContent()); + } + +}