Skip to content

Commit 88fe92a

Browse files
committed
Add claim test and add type to line item
1 parent 850d919 commit 88fe92a

File tree

2 files changed

+54
-29
lines changed

2 files changed

+54
-29
lines changed

src/warranty/ClaimTest.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package warranty;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import java.util.Date;
6+
import java.util.UUID;
7+
8+
import static org.junit.jupiter.api.Assertions.*;
9+
10+
class ClaimTest {
11+
12+
@Test
13+
public void TestClaimIsSetupCorrectly()
14+
{
15+
LineItem lineItem1 = new LineItem("PARTS", 45.0, "Replacement part for soap dispenser");
16+
LineItem lineItem2 = new LineItem("LABOR", 50.0, "1 hour repair");
17+
RepairPO repairPO = new RepairPO();
18+
repairPO.lineItems.add(lineItem1);
19+
repairPO.lineItems.add(lineItem2);
20+
21+
Claim claim = new Claim(100.0, new Date(2010, 5, 8));
22+
claim.repairPO.add(repairPO);
23+
24+
assertEquals(100.0, claim.amount);
25+
assertEquals(new Date(2010, 5, 8), claim.failureDate);
26+
assertEquals("PARTS", claim.repairPO.get(0).lineItems.get(0).type);
27+
assertEquals(45.0, claim.repairPO.get(0).lineItems.get(0).amount);
28+
assertEquals("Replacement part for soap dispenser", claim.repairPO.get(0).lineItems.get(0).description);
29+
assertEquals("LABOR", claim.repairPO.get(0).lineItems.get(1).type);
30+
assertEquals(50.0, claim.repairPO.get(0).lineItems.get(1).amount);
31+
assertEquals("1 hour repair", claim.repairPO.get(0).lineItems.get(1).description);
32+
}
33+
34+
// Entities compare by unique IDs, not properties
35+
@Test
36+
public void TestClaimEquality()
37+
{
38+
}
39+
40+
}

src/warranty/LineItem.java

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,28 @@
11
package warranty;
22

3+
import java.util.Objects;
4+
35
public class LineItem {
6+
public final String type;
47
public final double amount;
58
public final String description;
69

7-
public LineItem(double amount, String description) {
8-
this.amount = amount;
10+
public LineItem(String type, double amount, String description) {
11+
this.type = type;
12+
this.amount = amount;
913
this.description = description;
1014
}
1115

1216
@Override
13-
public int hashCode() {
14-
final int prime = 31;
15-
int result = 1;
16-
long temp;
17-
temp = Double.doubleToLongBits(amount);
18-
result = prime * result + (int) (temp ^ (temp >>> 32));
19-
result = prime * result
20-
+ ((description == null) ? 0 : description.hashCode());
21-
return result;
17+
public boolean equals(Object o) {
18+
if (this == o) return true;
19+
if (o == null || getClass() != o.getClass()) return false;
20+
LineItem lineItem = (LineItem) o;
21+
return Double.compare(lineItem.amount, amount) == 0 && Objects.equals(type, lineItem.type) && Objects.equals(description, lineItem.description);
2222
}
23+
2324
@Override
24-
public boolean equals(Object obj) {
25-
if (this == obj)
26-
return true;
27-
if (obj == null)
28-
return false;
29-
if (getClass() != obj.getClass())
30-
return false;
31-
LineItem other = (LineItem) obj;
32-
if (Double.doubleToLongBits(amount) != Double
33-
.doubleToLongBits(other.amount))
34-
return false;
35-
if (description == null) {
36-
if (other.description != null)
37-
return false;
38-
} else if (!description.equals(other.description))
39-
return false;
40-
return true;
25+
public int hashCode() {
26+
return Objects.hash(type, amount, description);
4127
}
42-
4328
}

0 commit comments

Comments
 (0)