From 9dcff80f3d76e585f2274f4ff744ef38b0aba8d9 Mon Sep 17 00:00:00 2001 From: Auto_EPMD-EDP AIAssistant Date: Fri, 25 Oct 2024 12:43:05 +0300 Subject: [PATCH] Add unit test for processUpdateForm method in PetController --- .../petclinic/owner/PetControllerTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTest.java b/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTest.java index 25a51f0fe..1f7f190fb 100644 --- a/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTest.java +++ b/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTest.java @@ -22,6 +22,7 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.doThrow; import org.junit.jupiter.api.Assertions; +import java.time.LocalDate; @ExtendWith(MockitoExtension.class) @DisplayName("PetController Tests") @@ -121,4 +122,24 @@ class PetControllerTest { verify(model).put("pet", pet); } + @Test + @DisplayName("Test processUpdateForm handles invalid birth date") + void testProcessUpdateFormHandlesInvalidBirthDate() { + Pet pet = new Pet(); + pet.setBirthDate(LocalDate.now().plusDays(1)); // Invalid birth date (future date) + + BindingResult result = org.mockito.Mockito.mock(BindingResult.class); + Owner owner = org.mockito.Mockito.mock(Owner.class); + ModelMap model = org.mockito.Mockito.mock(ModelMap.class); + RedirectAttributes redirectAttributes = org.mockito.Mockito.mock(RedirectAttributes.class); + + doReturn(true).when(result).hasErrors(); + + String view = petController.processUpdateForm(pet, result, owner, model, redirectAttributes); + + assertThat(view).isEqualTo("pets/createOrUpdatePetForm"); + verify(result).rejectValue("birthDate", "typeMismatch.birthDate"); + verify(model).put("pet", pet); + } + }