diff --git a/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java b/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java index 08d61360e..ff02bce95 100644 --- a/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java @@ -16,10 +16,15 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.samples.petclinic.owner.Pet; import org.springframework.samples.petclinic.owner.PetRepository; import org.springframework.samples.petclinic.owner.VisitController; +import org.springframework.samples.petclinic.visit.Visit; import org.springframework.samples.petclinic.visit.VisitRepository; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; +import static org.mockito.Mockito.verify; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyInt; + /** * Test class for {@link VisitController} * @@ -50,6 +55,7 @@ public class VisitControllerTests { mockMvc.perform(get("/owners/*/pets/{petId}/visits/new", TEST_PET_ID)) .andExpect(status().isOk()) .andExpect(view().name("pets/createOrUpdateVisitForm")); + verify(pets).findById(anyInt()); //Ensure that a pet gets loaded per visit } @Test @@ -60,6 +66,8 @@ public class VisitControllerTests { ) .andExpect(status().is3xxRedirection()) .andExpect(view().name("redirect:/owners/{ownerId}")); + verify(pets).findById(anyInt()); //Ensure that a pet gets loaded per visit + verify(visits).save(any(Visit.class)); //Ensure that upon success, the visit gets saved } @Test @@ -70,6 +78,6 @@ public class VisitControllerTests { .andExpect(model().attributeHasErrors("visit")) .andExpect(status().isOk()) .andExpect(view().name("pets/createOrUpdateVisitForm")); + verify(pets).findById(anyInt()); //Ensure that a pet gets loaded per visit } - } diff --git a/src/test/java/org/springframework/samples/petclinic/visit/VisitRepositoryTest.java b/src/test/java/org/springframework/samples/petclinic/visit/VisitRepositoryTest.java new file mode 100644 index 000000000..ea8b232a6 --- /dev/null +++ b/src/test/java/org/springframework/samples/petclinic/visit/VisitRepositoryTest.java @@ -0,0 +1,50 @@ +package org.springframework.samples.petclinic.visit; + +import java.util.Date; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.stereotype.Service; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@DataJpaTest(includeFilters = @ComponentScan.Filter(Service.class)) +public class VisitRepositoryTest { + private static final int VISIT_ID = 1; + private static final String DESCRIPTION = "Visiting a test case"; + private static final Date TODAY = new Date(); + private Visit visit; + private List visitList; + + @Autowired + private VisitRepository visitRepository; + + @Before + public void setUp(){ + visit = new Visit(); + visit.setDescription(DESCRIPTION); + visit.setPetId(VISIT_ID); + visit.setDate(TODAY); + } + + @Test + public void shouldFindSavedVisitInVisitRepository() { + visitRepository.save(visit); + //Get the list of visits associated to VISIT_ID + visitList = visitRepository.findByPetId(VISIT_ID); + + assertThat(visitList.size()).isEqualTo(1); + Visit savedVisit = visitList.get(0); + + assertThat((int) savedVisit.getPetId()).isEqualTo(VISIT_ID); + assertThat(savedVisit.getDescription()).isEqualTo(DESCRIPTION); + assertThat(savedVisit.getDate()).isEqualTo(TODAY); + } +} diff --git a/src/test/java/org/springframework/samples/petclinic/visit/VisitTest.java b/src/test/java/org/springframework/samples/petclinic/visit/VisitTest.java new file mode 100644 index 000000000..4f6f3991a --- /dev/null +++ b/src/test/java/org/springframework/samples/petclinic/visit/VisitTest.java @@ -0,0 +1,38 @@ +package org.springframework.samples.petclinic.visit; + +import java.util.Date; +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.Before; +import org.junit.Test; + +public class VisitTest { + private Visit visit; + + @Before + public void setUp() { + visit = new Visit(); + } + + @Test + public void testGetDate() { + Date today = new Date(); + visit.setDate(today); + assertThat(visit.getDate()).isEqualTo(today); + } + + @Test + public void testGetDescription() { + String description = "The greatest visit of all time"; + visit.setDescription(description); + assertThat(visit.getDescription()).isEqualTo(description); + } + + @Test + public void testGetPetId() { + int petId = 1; + visit.setPetId(petId); + assertThat((int) visit.getPetId()).isEqualTo(petId); + } + +}