diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java index b12e7c827..0ddaff067 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerController.java @@ -18,6 +18,7 @@ package org.springframework.samples.petclinic.owner; import java.util.List; import java.util.Map; +import javax.transaction.Transactional; import javax.validation.Valid; import org.springframework.data.domain.Page; @@ -153,11 +154,12 @@ class OwnerController { * @return a ModelMap with the model attributes for the view */ @GetMapping("/owners/{ownerId}") + @Transactional public ModelAndView showOwner(@PathVariable("ownerId") int ownerId) { ModelAndView mav = new ModelAndView("owners/ownerDetails"); Owner owner = this.owners.findById(ownerId); for (Pet pet : owner.getPets()) { - pet.getVisits(); + pet.getVisits().size(); } mav.addObject(owner); return mav; diff --git a/src/test/java/org/springframework/samples/petclinic/PetclinicIntegrationTests.java b/src/test/java/org/springframework/samples/petclinic/PetclinicIntegrationTests.java index 226db01fe..5b487e6fa 100644 --- a/src/test/java/org/springframework/samples/petclinic/PetclinicIntegrationTests.java +++ b/src/test/java/org/springframework/samples/petclinic/PetclinicIntegrationTests.java @@ -16,21 +16,43 @@ package org.springframework.samples.petclinic; +import static org.assertj.core.api.Assertions.assertThat; + import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; +import org.springframework.boot.web.client.RestTemplateBuilder; +import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.http.HttpStatus; +import org.springframework.http.RequestEntity; +import org.springframework.http.ResponseEntity; import org.springframework.samples.petclinic.vet.VetRepository; +import org.springframework.web.client.RestTemplate; -@SpringBootTest +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) class PetclinicIntegrationTests { + @LocalServerPort + int port; + @Autowired private VetRepository vets; + @Autowired + private RestTemplateBuilder builder; + @Test void testFindAll() throws Exception { vets.findAll(); vets.findAll(); // served from cache } + @Test + void testOwnerDetails() { + RestTemplate template = builder.rootUri("http://localhost:" + port).build(); + ResponseEntity result = template.exchange(RequestEntity.get("/owners/1").build(), String.class); + assertThat(result.getStatusCode()).isEqualTo(HttpStatus.OK); + } + } diff --git a/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java b/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java index c93d03321..f93808e97 100644 --- a/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java @@ -31,7 +31,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; import java.time.LocalDate; -import java.util.Collections; import java.util.List; import org.assertj.core.util.Lists;