diff --git a/src/test/java/com/github/wahyd4/creditcard/service/FraudCheckerTest.java b/src/test/java/com/github/wahyd4/creditcard/service/FraudCheckerTest.java index c00f3ec..60e7a42 100644 --- a/src/test/java/com/github/wahyd4/creditcard/service/FraudCheckerTest.java +++ b/src/test/java/com/github/wahyd4/creditcard/service/FraudCheckerTest.java @@ -33,6 +33,31 @@ public class FraudCheckerTest { assertEquals(Arrays.asList("10d7ce2f43e35fa57d1bbf8b1e2"), strings); } + @Test + public void shouldReturnFraudulentCreditCardWhenThereIsOnlyOneEntryButOverTheThreshold() { + FraudChecker fraudChecker = new FraudChecker(parser); + List entries = Arrays.asList( + "10d7ce2f43e35fa57d1bbf8b1e2, 2014-04-29T16:15:54, 80.00" + ); + BigDecimal threshold = BigDecimal.valueOf(40.00); + List strings = fraudChecker.fraudulentCreditCards(entries, threshold); + assertEquals(Arrays.asList("10d7ce2f43e35fa57d1bbf8b1e2"), strings); + } + + @Test + public void shouldReturnFraudulentCreditCardWhenMultipleSlidingTimeRangesOverTheThreshold() { + FraudChecker fraudChecker = new FraudChecker(parser); + List entries = Arrays.asList( + "10d7ce2f43e35fa57d1bbf8b1e2, 2014-04-29T10:15:54, 20.00", + "10d7ce2f43e35fa57d1bbf8b1e2, 2014-04-29T20:15:54, 30.00", + "10d7ce2f43e35fa57d1bbf8b1e2, 2015-01-20T16:15:54, 10.00", + "10d7ce2f43e35fa57d1bbf8b1e2, 2015-01-20T19:15:54, 35.00" + ); + BigDecimal threshold = BigDecimal.valueOf(40.00); + List strings = fraudChecker.fraudulentCreditCards(entries, threshold); + assertEquals(Arrays.asList("10d7ce2f43e35fa57d1bbf8b1e2"), strings); + } + @Test public void shouldIgnoreTheCardWhenTheTotalIsEqualToTheThreshold() { FraudChecker fraudChecker = new FraudChecker(parser);