diff --git a/src/test/java/org/springframework/samples/petclinic/teamkoganM2additions/TestPetTypeFormatter.java b/src/test/java/org/springframework/samples/petclinic/teamkoganM2additions/TestPetTypeFormatter.java new file mode 100644 index 000000000..c75b25714 --- /dev/null +++ b/src/test/java/org/springframework/samples/petclinic/teamkoganM2additions/TestPetTypeFormatter.java @@ -0,0 +1,73 @@ +package org.springframework.samples.petclinic.teamkoganM2additions; + +import org.junit.Test; +import org.springframework.samples.petclinic.owner.PetRepository; +import org.springframework.samples.petclinic.owner.PetType; +import org.springframework.samples.petclinic.owner.PetTypeFormatter; + +import static org.mockito.Mockito.*; + +import java.text.ParseException; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import static org.junit.Assert.assertEquals; + +public class TestPetTypeFormatter { + + @Test + public void testPetTypeFormatter() { + + //create the mock PetRepository + PetRepository mockPetRepository = mock(PetRepository.class); + + //create the mock PetType + PetType mockPetType = mock(PetType.class); + + //call the class under test + PetTypeFormatter PTF = new PetTypeFormatter(mockPetRepository); + + //stub the getName() method + when(mockPetType.getName()).thenReturn("Testy"); + + //test the print method + String name = PTF.print(mockPetType, Locale.ENGLISH); + + //check the result is what we expected + assertEquals("Testy", name); + + //verify the getName method was called + verify(mockPetType).getName(); + + //stub the findPetTypes method to return the PetTypes defined below + when(mockPetRepository.findPetTypes()).thenReturn(PetTypes()); + + //try catch block needed for ParseException that can be thrown when testing the parse method + try { + //test the parse method + PetType testPetType = PTF.parse("Pupper", Locale.ENGLISH); + + //verify the getName method was called + verify(mockPetType).getName(); + + //check that the result is what is expected + assertEquals("Pupper", testPetType.getName()); + } catch (ParseException e) { + e.printStackTrace(); + } + } + + //define some pet types + private List PetTypes() { + List petTypes = new ArrayList<>(); + petTypes.add(new PetType() { + { setName("Doggo"); } + }); + petTypes.add(new PetType() { + { setName("Pupper"); } + }); + return petTypes; + } + +} diff --git a/src/test/java/org/springframework/samples/petclinic/teamkogan/VisitControllerTest.java b/src/test/java/org/springframework/samples/petclinic/teamkoganM2additions/VisitControllerTest.java similarity index 91% rename from src/test/java/org/springframework/samples/petclinic/teamkogan/VisitControllerTest.java rename to src/test/java/org/springframework/samples/petclinic/teamkoganM2additions/VisitControllerTest.java index 45f39bbe5..72416c0c2 100644 --- a/src/test/java/org/springframework/samples/petclinic/teamkogan/VisitControllerTest.java +++ b/src/test/java/org/springframework/samples/petclinic/teamkoganM2additions/VisitControllerTest.java @@ -1,4 +1,4 @@ -package org.springframework.samples.petclinic.teamkogan; +package org.springframework.samples.petclinic.teamkoganM2additions; import static org.junit.Assert.*; import static org.mockito.Mockito.*; @@ -20,18 +20,18 @@ public class VisitControllerTest // Define random pet ID final Integer PET_ID = 7; Pet pet7 = new Pet(); - + // Mock dependencies VisitRepository mockVisitRepo = mock(VisitRepository.class); PetRepository mockPetRepo = mock(PetRepository.class); VisitController visitController = new VisitController(mockVisitRepo, mockPetRepo); - - // Define mock behaviour + + // Define mock behaviour when(mockPetRepo.findById(PET_ID)).thenReturn(pet7); - + // Call method under inspection Visit visit = visitController.loadPetWithVisit(PET_ID, new HashMap<>()); - + // Confirm that the same visit date was assigned to the pet assertEquals(visit.getDate(), pet7.getVisits().get(0).getDate()); }