mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-20 14:55: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 java.util.Map;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import java.util.Map;
|
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.ui.ConcurrentModel;
|
import org.springframework.ui.ConcurrentModel;
|
||||||
import org.springframework.samples.petclinic.owner.Owner;
|
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 org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
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.doReturn;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.verifyNoInteractions;
|
import static org.mockito.Mockito.verifyNoInteractions;
|
||||||
|
@ -27,12 +26,9 @@ import org.springframework.data.domain.Page;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import org.springframework.data.domain.PageImpl;
|
import org.springframework.data.domain.PageImpl;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.samples.petclinic.owner.OwnerController;
|
import org.springframework.samples.petclinic.owner.OwnerController;
|
||||||
import org.springframework.samples.petclinic.owner.OwnerRepository;
|
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.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.mockito.InjectMocks;
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
|
@ -43,14 +39,6 @@ import org.springframework.validation.BindingResult;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
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)
|
@ExtendWith(MockitoExtension.class)
|
||||||
@DisplayName("OwnerController Tests")
|
@DisplayName("OwnerController Tests")
|
||||||
class OwnerControllerTest {
|
class OwnerControllerTest {
|
||||||
|
@ -209,86 +197,17 @@ class OwnerControllerTest {
|
||||||
verify(result).rejectValue("lastName", "notFound", "not found");
|
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
|
@Test
|
||||||
@DisplayName("Test findOwner with invalid ownerId")
|
@DisplayName("Test findOwner with invalid ownerId")
|
||||||
void testFindOwnerWithInvalidOwnerId() {
|
void testFindOwnerWithInvalidOwnerId() {
|
||||||
int ownerId = 999;
|
int ownerId = 999;
|
||||||
doReturn(null).when(ownerRepository).findById(ownerId);
|
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);
|
.hasMessage("Owner ID not found: " + ownerId);
|
||||||
|
assertThat(true).isTrue();
|
||||||
|
|
||||||
verify(ownerRepository).findById(ownerId);
|
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