From 4b035d68ffaaf59f574b204228eee06ac070138b Mon Sep 17 00:00:00 2001 From: Auto_EPMD-EDP AIAssistant Date: Thu, 24 Oct 2024 09:22:19 +0300 Subject: [PATCH] Add unit test for processCreationForm in OwnerController with validation errors --- .../petclinic/owner/OwnerControllerTest.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTest.java diff --git a/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTest.java b/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTest.java new file mode 100644 index 000000000..fe87e4d81 --- /dev/null +++ b/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTest.java @@ -0,0 +1,56 @@ +package org.springframework.samples.petclinic.owner; + +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.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.validation.BindingResult; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoInteractions; + +@ExtendWith(MockitoExtension.class) +class OwnerControllerTest { + + @Mock + private OwnerRepository ownerRepository; + + @Mock + private BindingResult result; + + @Mock + private RedirectAttributes redirectAttributes; + + @InjectMocks + private OwnerController ownerController; + + private MockMvc mockMvc; + + @BeforeEach + void setup() { + mockMvc = MockMvcBuilders.standaloneSetup(ownerController).build(); + } + + @Test + @DisplayName("Test processCreationForm with validation errors") + void testProcessCreationFormWithValidationErrors() { + Owner owner = new Owner(); + + doReturn(true).when(result).hasErrors(); + + String view = ownerController.processCreationForm(owner, result, redirectAttributes); + + assertThat(view).isEqualTo("owners/createOrUpdateOwnerForm"); + verify(result).hasErrors(); + verifyNoInteractions(ownerRepository); + } + +}