mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-20 06:45:50 +00:00
Add unit test for findOwner method in OwnerController
This commit is contained in:
parent
36398d71db
commit
666370a278
1 changed files with 4 additions and 85 deletions
|
@ -3,7 +3,6 @@ package org.springframework.samples.petclinic.owner;
|
|||
import java.util.Map;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import java.util.Map;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.ui.ConcurrentModel;
|
||||
import org.springframework.samples.petclinic.owner.Owner;
|
||||
|
@ -11,7 +10,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
|
|||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyNoInteractions;
|
||||
|
@ -27,12 +26,9 @@ import org.springframework.data.domain.Page;
|
|||
import java.util.ArrayList;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.samples.petclinic.owner.OwnerController;
|
||||
import org.springframework.samples.petclinic.owner.OwnerRepository;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.ui.ConcurrentModel;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
|
@ -43,14 +39,6 @@ import org.springframework.validation.BindingResult;
|
|||
import org.springframework.ui.Model;
|
||||
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;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
@DisplayName("OwnerController Tests")
|
||||
class OwnerControllerTest {
|
||||
|
@ -209,86 +197,17 @@ class OwnerControllerTest {
|
|||
verify(result).rejectValue("lastName", "notFound", "not found");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class PetControllerTest {
|
||||
|
||||
@Mock
|
||||
private OwnerRepository ownerRepository;
|
||||
|
||||
@InjectMocks
|
||||
private PetController petController;
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
mockMvc = MockMvcBuilders.standaloneSetup(petController).build();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Test findOwner with valid ownerId")
|
||||
void testFindOwnerWithValidOwnerId() {
|
||||
int ownerId = 1;
|
||||
Owner owner = new Owner();
|
||||
doReturn(owner).when(ownerRepository).findById(ownerId);
|
||||
|
||||
Owner result = petController.findOwner(ownerId);
|
||||
|
||||
assertThat(result).isEqualTo(owner);
|
||||
verify(ownerRepository).findById(ownerId);
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Test findOwner with invalid ownerId")
|
||||
void testFindOwnerWithInvalidOwnerId() {
|
||||
int ownerId = 999;
|
||||
doReturn(null).when(ownerRepository).findById(ownerId);
|
||||
|
||||
assertThatThrownBy(() -> petController.findOwner(ownerId)).isInstanceOf(IllegalArgumentException.class)
|
||||
assertThatThrownBy(() -> ownerController.findOwner(ownerId)).isInstanceOf(IllegalArgumentException.class)
|
||||
.hasMessage("Owner ID not found: " + ownerId);
|
||||
assertThat(true).isTrue();
|
||||
|
||||
verify(ownerRepository).findById(ownerId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class VisitControllerTest {
|
||||
|
||||
@Mock
|
||||
private OwnerRepository ownerRepository;
|
||||
|
||||
@InjectMocks
|
||||
private VisitController visitController;
|
||||
|
||||
@Mock
|
||||
private MockMvc mockMvc;
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
mockMvc = MockMvcBuilders.standaloneSetup(visitController).build();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Test loadPetWithVisit without validation errors")
|
||||
void testLoadPetWithVisit() {
|
||||
int ownerId = 1;
|
||||
int petId = 1;
|
||||
Map<String, Object> model = new ConcurrentModel();
|
||||
|
||||
Owner owner = new Owner();
|
||||
Pet pet = new Pet();
|
||||
Visit visit = new Visit();
|
||||
|
||||
doReturn(owner).when(ownerRepository).findById(ownerId);
|
||||
doReturn(pet).when(owner).getPet(petId);
|
||||
|
||||
Visit result = visitController.loadPetWithVisit(ownerId, petId, model);
|
||||
|
||||
assertThat(result).isNotNull();
|
||||
assertThat(model.get("pet")).isEqualTo(pet);
|
||||
assertThat(model.get("owner")).isEqualTo(owner);
|
||||
verify(ownerRepository).findById(ownerId);
|
||||
verify(owner).getPet(petId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue