1
2
3
4
5
6 package petclinic.visits;
7
8 import static java.util.Arrays.asList;
9
10 import static org.junit.jupiter.api.Assertions.assertEquals;
11 import static org.junit.jupiter.api.Assertions.assertNotNull;
12 import static org.junit.jupiter.api.Assertions.assertNull;
13 import static org.junit.jupiter.api.Assertions.assertSame;
14
15 import java.util.List;
16
17 import org.junit.jupiter.api.Test;
18
19 import petclinic.pets.Pet;
20 import petclinic.pets.PetData;
21 import petclinic.util.SUT;
22 import petclinic.util.TestUtil;
23
24
25
26
27
28 final class VisitScreenTest {
29 @TestUtil
30 PetData petData;
31 @TestUtil
32 VisitData visitData;
33 @SUT
34 VisitScreen visitScreen;
35
36 @Test
37 void showVisitsForSelectedPet() {
38 Visit v1 = visitData.create("Visit 1 for pet");
39 Visit v2 = visitData.create("Visit 2 for pet");
40 visitScreen.selectPet(v1.getPet().getId());
41
42 visitScreen.showVisits();
43 List<Visit> visits = visitScreen.getVisits();
44
45 assertEquals(asList(v1, v2), visits);
46 }
47
48 @Test
49 void attemptToShowVisitsWithoutFirstSelectingAPet() {
50 visitScreen.showVisits();
51
52 assertNull(visitScreen.getVisits());
53 }
54
55 @Test
56 void attemptToSelectVisitWithNonExistingId() {
57 Visit visit = visitData.create("Visit 1 for pet");
58 visitScreen.selectVisit(visit.getId());
59
60 visitScreen.selectVisit(95234232);
61
62 assertNull(visitScreen.getVisit());
63 assertNull(visitScreen.getPet());
64 }
65
66 @Test
67 void addNewVisitForPet() {
68 Pet pet = petData.create("Samantha", null, "hamster");
69
70 visitScreen.requestNewVisit();
71 Visit visit = visitScreen.getVisit();
72 visit.setDescription("test");
73
74 visitScreen.selectPet(pet.getId());
75 assertSame(pet, visitScreen.getPet());
76
77 visitScreen.createOrUpdateVisit();
78
79 petData.refresh(pet);
80 assertSame(pet, visit.getPet());
81 assertEquals(1, pet.getVisits().size());
82 assertNotNull(visit.getId());
83 assertNotNull(visit.getDate());
84 }
85
86 @Test
87 void updateExistingVisit() {
88 Visit visit = visitData.create();
89 visitScreen.selectVisit(visit.getId());
90
91 Visit editedVisited = visitScreen.getVisit();
92 String modifiedDescription = editedVisited.getDescription() + " - modified";
93 editedVisited.setDescription(modifiedDescription);
94
95 visitScreen.createOrUpdateVisit();
96
97 Visit modifiedVisit = visitScreen.getVisit();
98 visitData.refresh(modifiedVisit);
99 assertEquals(modifiedDescription, modifiedVisit.getDescription());
100 }
101
102 @Test
103 void attemptToCreateOrUpdateVisitWithoutFirstSelectingAPet() {
104 visitScreen.createOrUpdateVisit();
105
106 assertNull(visitScreen.getVisit());
107 }
108
109 @Test
110 void attemptToUpdateVisitWithoutFirstSelectingAVisit() {
111 Pet pet = petData.create("Samantha", null, "hamster");
112 visitScreen.selectPet(pet.getId());
113
114 visitScreen.createOrUpdateVisit();
115
116 assertNull(visitScreen.getVisit());
117 }
118 }