From 08a9c6e24e62181bdc5edf59ade33413eba5271c Mon Sep 17 00:00:00 2001 From: Auto_EPMD-EDP AIAssistant Date: Thu, 24 Oct 2024 09:28:40 +0300 Subject: [PATCH] Add unit test for VetController to cover pagination scenario --- .../petclinic/vet/VetControllerTest.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/test/java/org/springframework/samples/petclinic/vet/VetControllerTest.java 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()); + } + +}