1+ package warranty ;
2+
3+ import org .junit .jupiter .api .Test ;
4+
5+ import java .util .Date ;
6+
7+ import static org .junit .jupiter .api .Assertions .*;
8+
9+ class ClaimsAdjudicationTest {
10+
11+ Contract FakeContract ()
12+ {
13+ Product product = new Product ("dishwasher" , "OEUOEU23" , "Whirlpool" , "7DP840CWDB0" );
14+ Contract contract = new Contract (100.0 , product , new Date (2010 , 5 , 7 ), new Date (2010 , 5 , 8 ), new Date (2013 , 5 , 8 ));
15+ contract .status = Contract .Status .ACTIVE ;
16+
17+ return contract ;
18+ }
19+
20+ @ Test
21+ void AdjudicateValidClaim () {
22+ Contract contract = FakeContract ();
23+ Claim claim = new Claim (79.0 , new Date (2010 , 5 , 8 ));
24+
25+ new ClaimsAdjudication ().Adjudicate (contract , claim );
26+
27+ assertEquals (1 , contract .getClaims ().size ());
28+ assertEquals (79.0 , contract .getClaims ().get (0 ).amount );
29+ assertEquals (new Date (2010 , 5 , 8 ), contract .getClaims ().get (0 ).failureDate );
30+ }
31+
32+ @ Test
33+ void AdjudicateClaimWithInvalidAmount () {
34+ Contract contract = FakeContract ();
35+ Claim claim = new Claim (81.0 , new Date (2010 , 5 , 8 ));
36+
37+ new ClaimsAdjudication ().Adjudicate (contract , claim );
38+
39+ assertEquals (0 , contract .getClaims ().size ());
40+ }
41+
42+ @ Test
43+ void AdjudicateClaimForPendingContract () {
44+ Contract contract = FakeContract ();
45+ contract .status = Contract .Status .PENDING ;
46+ Claim claim = new Claim (79.0 , new Date (2010 , 5 , 8 ));
47+
48+ new ClaimsAdjudication ().Adjudicate (contract , claim );
49+
50+ assertEquals (0 , contract .getClaims ().size ());
51+ }
52+
53+ @ Test
54+ void AdjudicateClaimForExpiredContract () {
55+ Contract contract = FakeContract ();
56+ contract .status = Contract .Status .EXPIRED ;
57+ Claim claim = new Claim (79.0 , new Date (2010 , 5 , 8 ));
58+
59+ new ClaimsAdjudication ().Adjudicate (contract , claim );
60+
61+ assertEquals (0 , contract .getClaims ().size ());
62+ }
63+
64+ @ Test
65+ void AdjudicateClaimPriorToEffectiveDate () {
66+ Contract contract = FakeContract ();
67+ Claim claim = new Claim (79.0 , new Date (2010 , 5 , 7 ));
68+
69+ new ClaimsAdjudication ().Adjudicate (contract , claim );
70+
71+ assertEquals (0 , contract .getClaims ().size ());
72+ }
73+ @ Test
74+ void AdjudicateClaimAfterToExpirationDate () {
75+ Contract contract = FakeContract ();
76+ Claim claim = new Claim (79.0 , new Date (2013 , 5 , 9 ));
77+
78+ new ClaimsAdjudication ().Adjudicate (contract , claim );
79+
80+ assertEquals (0 , contract .getClaims ().size ());
81+ }
82+ }
0 commit comments