16
16
17
17
package com .josdem .vetlog .service ;
18
18
19
+ import static org .junit .jupiter .api .Assertions .assertEquals ;
19
20
import static org .junit .jupiter .api .Assertions .assertThrows ;
20
21
import static org .mockito .ArgumentMatchers .any ;
21
22
import static org .mockito .Mockito .never ;
22
23
import static org .mockito .Mockito .times ;
23
24
import static org .mockito .Mockito .verify ;
25
+ import static org .mockito .Mockito .when ;
24
26
25
27
import com .josdem .vetlog .enums .PetType ;
26
28
import com .josdem .vetlog .enums .VaccinationStatus ;
36
38
import java .time .LocalDate ;
37
39
import java .time .LocalDateTime ;
38
40
import java .util .HashMap ;
41
+ import java .util .List ;
39
42
import java .util .Map ;
40
43
import lombok .extern .slf4j .Slf4j ;
41
44
import org .junit .jupiter .api .BeforeEach ;
@@ -55,22 +58,16 @@ class VaccinationServiceTest {
55
58
@ Mock
56
59
private VaccinationRepository vaccinationRepository ;
57
60
58
- private DogVaccinationStrategy dogVaccinationStrategy ;
59
-
60
- private CatVaccinationStrategy catVaccinationStrategy ;
61
-
62
- private Map <PetType , VaccinationStrategy > vaccinationStrategies ;
63
-
64
61
private final Pet pet = new Pet ();
65
62
66
63
@ BeforeEach
67
64
void setup () {
68
65
MockitoAnnotations .openMocks (this );
69
66
70
- dogVaccinationStrategy = new DogVaccinationStrategy (vaccinationRepository );
71
- catVaccinationStrategy = new CatVaccinationStrategy (vaccinationRepository );
67
+ DogVaccinationStrategy dogVaccinationStrategy = new DogVaccinationStrategy (vaccinationRepository );
68
+ CatVaccinationStrategy catVaccinationStrategy = new CatVaccinationStrategy (vaccinationRepository );
72
69
73
- vaccinationStrategies = new HashMap <>();
70
+ Map < PetType , VaccinationStrategy > vaccinationStrategies = new HashMap <>();
74
71
vaccinationStrategies .put (PetType .DOG , dogVaccinationStrategy );
75
72
vaccinationStrategies .put (PetType .CAT , catVaccinationStrategy );
76
73
@@ -108,4 +105,16 @@ void shouldNotSaveVaccinationDueToNotOldEnough(TestInfo testInfo) {
108
105
verify (vaccinationRepository , never ())
109
106
.save (new Vaccination (null , any (), LocalDate .now (), VaccinationStatus .PENDING , pet ));
110
107
}
108
+
109
+ @ Test
110
+ @ DisplayName ("getting vaccines in Pending status" )
111
+ void shouldGetVaccinesInPendingStatus (TestInfo testInfo ) {
112
+ log .info ("Test: {}" , testInfo .getDisplayName ());
113
+ when (vaccinationRepository .findAllByPet (pet ))
114
+ .thenReturn (List .of (
115
+ new Vaccination (1L , "DA2PP" , LocalDate .now (), VaccinationStatus .PENDING , pet ),
116
+ new Vaccination (2L , "Deworming" , LocalDate .now (), VaccinationStatus .APPLIED , pet )));
117
+ final var vaccinesInPendingStatus = vaccinationService .getVaccinesByStatus (pet , VaccinationStatus .PENDING );
118
+ assertEquals (1 , vaccinesInPendingStatus .size ());
119
+ }
111
120
}
0 commit comments