mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-20 06:45:50 +00:00
Add unit test for processCreationForm method in PetController
This commit is contained in:
parent
558c1684e0
commit
74ce3d2818
1 changed files with 28 additions and 0 deletions
|
@ -2,6 +2,9 @@ package org.springframework.samples.petclinic.owner;
|
|||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
|
@ -75,4 +78,29 @@ class PetControllerTest {
|
|||
assertThat(pet).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Test processCreationForm handles duplicate pet name")
|
||||
void testProcessCreationFormHandlesDuplicatePetName() {
|
||||
Owner owner = org.mockito.Mockito.mock(Owner.class);
|
||||
Pet existingPet = new Pet();
|
||||
existingPet.setName("Buddy");
|
||||
owner.addPet(existingPet);
|
||||
|
||||
Pet newPet = new Pet();
|
||||
newPet.setName("Buddy");
|
||||
|
||||
BindingResult result = org.mockito.Mockito.mock(BindingResult.class);
|
||||
ModelMap model = org.mockito.Mockito.mock(ModelMap.class);
|
||||
RedirectAttributes redirectAttributes = org.mockito.Mockito.mock(RedirectAttributes.class);
|
||||
|
||||
doReturn(existingPet).when(owner).getPet("Buddy", true);
|
||||
doReturn(true).when(result).hasErrors();
|
||||
|
||||
petController.processCreationForm(owner, newPet, result, model, redirectAttributes);
|
||||
|
||||
verify(result).rejectValue("name", "duplicate", "already exists");
|
||||
verify(result).hasErrors();
|
||||
verify(model).put("pet", newPet);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue