Add unit test for processCreationForm in OwnerController with validation errors

This commit is contained in:
Auto_EPMD-EDP AIAssistant 2024-10-24 09:22:19 +03:00
parent 08dc8c020a
commit 4b035d68ff

View file

@ -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);
}
}