killbill-aplcache

Details

diff --git a/invoice/src/test/java/org/killbill/billing/invoice/usage/TestContiguousIntervalConsumableInArrear.java b/invoice/src/test/java/org/killbill/billing/invoice/usage/TestContiguousIntervalConsumableInArrear.java
index 19c0505..47e7bd2 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/usage/TestContiguousIntervalConsumableInArrear.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/usage/TestContiguousIntervalConsumableInArrear.java
@@ -324,10 +324,8 @@ public class TestContiguousIntervalConsumableInArrear extends TestUsageInArrearB
         // check item detail
         List<UsageInArrearDetail> itemDetails = objectMapper.readValue(result.get(0).getItemDetails(), new TypeReference<List<UsageInArrearDetail>>() {});
 
-        assertEquals(itemDetails.size(), 2);
-        assertEquals(itemDetails.get(0).getAmount().compareTo(new BigDecimal("5")),0);
-        assertEquals(itemDetails.get(1).getAmount().compareTo(new BigDecimal("-1")),0);
-        assertEquals(result.get(0).getAmount().compareTo(itemDetails.get(0).getAmount().add(itemDetails.get(1).getAmount())),0);
+        assertEquals(itemDetails.size(), 1);
+        assertEquals(itemDetails.get(0).getAmount().compareTo(result.get(0).getAmount()),0);
 
         // Invoiced for 1 BTC and used 199  => 2 blocks => 2 BTC so remaining piece should be 1 BTC
         assertEquals(result.get(1).getAmount().compareTo(new BigDecimal("1.0")), 0, String.format("%s != 1.0", result.get(0).getAmount()));
@@ -343,11 +341,8 @@ public class TestContiguousIntervalConsumableInArrear extends TestUsageInArrearB
 
         // check item detail
         List<UsageInArrearDetail> itemDetails2 = objectMapper.readValue(result.get(1).getItemDetails(), new TypeReference<List<UsageInArrearDetail>>() {});
-        assertEquals(itemDetails2.size(), 2);
-        assertEquals(itemDetails2.get(0).getAmount().compareTo(new BigDecimal("2")),0);
-        assertEquals(itemDetails2.get(1).getAmount().compareTo(new BigDecimal("-1")),0);
-        assertEquals(result.get(1).getAmount().compareTo(itemDetails2.get(0).getAmount().add(itemDetails2.get(1).getAmount())),0);
-
+        assertEquals(itemDetails2.size(), 1);
+        assertEquals(itemDetails2.get(0).getAmount().compareTo(result.get(1).getAmount()),0);
     }
 
     @Test(groups = "fast")
@@ -485,11 +480,13 @@ public class TestContiguousIntervalConsumableInArrear extends TestUsageInArrearB
 
         List<UsageInArrearDetail> itemDetails = objectMapper.readValue(result.get(0).getItemDetails(), new TypeReference<List<UsageInArrearDetail>>() {});
         // BAR: 99 * 2 = 198
+        assertEquals(itemDetails.get(0).getTierUnit(), "BAR");
         assertEquals(itemDetails.get(0).getTier(), 1);
         assertEquals(itemDetails.get(0).getAmount().compareTo(new BigDecimal("198")), 0);
         assertEquals(itemDetails.get(0).getQuantity().intValue(), 99);
         assertEquals(itemDetails.get(0).getTierPrice().compareTo(new BigDecimal("2.0")), 0);
         // FOO: 5 * 1 = 5
+        assertEquals(itemDetails.get(1).getTierUnit(), "FOO");
         assertEquals(itemDetails.get(1).getTier(), 1);
         assertEquals(itemDetails.get(1).getAmount().compareTo(new BigDecimal("5")), 0);
         assertEquals(itemDetails.get(1).getQuantity().intValue(), 5);
@@ -506,16 +503,19 @@ public class TestContiguousIntervalConsumableInArrear extends TestUsageInArrearB
 
         itemDetails = objectMapper.readValue(result.get(0).getItemDetails(), new TypeReference<List<UsageInArrearDetail>>() {});
         // BAR: 100 * 2 = 200
+        assertEquals(itemDetails.get(0).getTierUnit(), "BAR");
         assertEquals(itemDetails.get(0).getTier(), 1);
         assertEquals(itemDetails.get(0).getAmount().compareTo(new BigDecimal("200.0")), 0);
         assertEquals(itemDetails.get(0).getQuantity().intValue(), 100);
         assertEquals(itemDetails.get(0).getTierPrice().compareTo(new BigDecimal("2.0")), 0);
         // BAR: 1 * 20 = 20
+        assertEquals(itemDetails.get(1).getTierUnit(), "BAR");
         assertEquals(itemDetails.get(1).getTier(), 2);
         assertEquals(itemDetails.get(1).getAmount().compareTo(new BigDecimal("20.0")), 0);
         assertEquals(itemDetails.get(1).getQuantity().intValue(), 1);
         assertEquals(itemDetails.get(1).getTierPrice().compareTo(new BigDecimal("20.0")), 0);
         // FOO: 5 * 1 = 5
+        assertEquals(itemDetails.get(2).getTierUnit(), "FOO");
         assertEquals(itemDetails.get(2).getTier(), 1);
         assertEquals(itemDetails.get(2).getAmount().compareTo(new BigDecimal("5")), 0);
         assertEquals(itemDetails.get(2).getQuantity().intValue(), 5);
@@ -532,26 +532,31 @@ public class TestContiguousIntervalConsumableInArrear extends TestUsageInArrearB
 
         itemDetails = objectMapper.readValue(result.get(0).getItemDetails(), new TypeReference<List<UsageInArrearDetail>>() {});
         // BAR: 100 * 2 = 200
+        assertEquals(itemDetails.get(0).getTierUnit(), "BAR");
         assertEquals(itemDetails.get(0).getTier(), 1);
         assertEquals(itemDetails.get(0).getAmount().compareTo(new BigDecimal("200.0")), 0);
         assertEquals(itemDetails.get(0).getQuantity().intValue(), 100);
         assertEquals(itemDetails.get(0).getTierPrice().compareTo(new BigDecimal("2.0")), 0);
         // BAR: 1 * 20 = 20
+        assertEquals(itemDetails.get(1).getTierUnit(), "BAR");
         assertEquals(itemDetails.get(1).getTier(), 2);
         assertEquals(itemDetails.get(1).getAmount().compareTo(new BigDecimal("20.0")), 0);
         assertEquals(itemDetails.get(1).getQuantity().intValue(), 1);
         assertEquals(itemDetails.get(1).getTierPrice().compareTo(new BigDecimal("20.0")), 0);
         // FOO: 10 * 1 = 10
+        assertEquals(itemDetails.get(2).getTierUnit(), "FOO");
         assertEquals(itemDetails.get(2).getTier(), 1);
         assertEquals(itemDetails.get(2).getAmount().compareTo(BigDecimal.TEN), 0);
         assertEquals(itemDetails.get(2).getQuantity().intValue(), 10);
         assertEquals(itemDetails.get(2).getTierPrice().compareTo(BigDecimal.ONE), 0);
         // FOO: 50 * 10 = 500
+        assertEquals(itemDetails.get(3).getTierUnit(), "FOO");
         assertEquals(itemDetails.get(3).getTier(), 2);
         assertEquals(itemDetails.get(3).getAmount().compareTo(new BigDecimal("500")), 0);
         assertEquals(itemDetails.get(3).getQuantity().intValue(), 50);
         assertEquals(itemDetails.get(3).getTierPrice().compareTo(BigDecimal.TEN), 0);
         // FOO: 15 * 100 = 1500
+        assertEquals(itemDetails.get(4).getTierUnit(), "FOO");
         assertEquals(itemDetails.get(4).getTier(), 3);
         assertEquals(itemDetails.get(4).getAmount().compareTo(new BigDecimal("1500")), 0);
         assertEquals(itemDetails.get(4).getQuantity().intValue(), 15);
@@ -640,11 +645,13 @@ public class TestContiguousIntervalConsumableInArrear extends TestUsageInArrearB
 
         List<UsageInArrearDetail> itemDetails = objectMapper.readValue(result.get(0).getItemDetails(), new TypeReference<List<UsageInArrearDetail>>() {});
         // BAR: 99 * 2 = 198
+        assertEquals(itemDetails.get(0).getTierUnit(), "BAR");
         assertEquals(itemDetails.get(0).getTier(), 1);
         assertEquals(itemDetails.get(0).getAmount().compareTo(new BigDecimal("198")), 0);
         assertEquals(itemDetails.get(0).getQuantity().intValue(), 99);
         assertEquals(itemDetails.get(0).getTierPrice().compareTo(new BigDecimal("2.0")), 0);
         // FOO: 5 * 1 = 5
+        assertEquals(itemDetails.get(1).getTierUnit(), "FOO");
         assertEquals(itemDetails.get(1).getTier(), 1);
         assertEquals(itemDetails.get(1).getAmount().compareTo(new BigDecimal("5")), 0);
         assertEquals(itemDetails.get(1).getQuantity().intValue(), 5);
@@ -661,11 +668,13 @@ public class TestContiguousIntervalConsumableInArrear extends TestUsageInArrearB
 
         itemDetails = objectMapper.readValue(result.get(0).getItemDetails(), new TypeReference<List<UsageInArrearDetail>>() {});
         // BAR: 101 * 20 = 2020
+        assertEquals(itemDetails.get(0).getTierUnit(), "BAR");
         assertEquals(itemDetails.get(0).getTier(), 2);
         assertEquals(itemDetails.get(0).getAmount().compareTo(new BigDecimal("2020.0")), 0);
         assertEquals(itemDetails.get(0).getQuantity().intValue(), 101);
         assertEquals(itemDetails.get(0).getTierPrice().compareTo(new BigDecimal("20.0")), 0);
         // FOO: 5 * 1 = 5
+        assertEquals(itemDetails.get(1).getTierUnit(), "FOO");
         assertEquals(itemDetails.get(1).getTier(), 1);
         assertEquals(itemDetails.get(1).getAmount().compareTo(new BigDecimal("5")), 0);
         assertEquals(itemDetails.get(1).getQuantity().intValue(), 5);
@@ -682,11 +691,13 @@ public class TestContiguousIntervalConsumableInArrear extends TestUsageInArrearB
 
         itemDetails = objectMapper.readValue(result.get(0).getItemDetails(), new TypeReference<List<UsageInArrearDetail>>() {});
         // BAR: 101 * 20 = 2020
+        assertEquals(itemDetails.get(0).getTierUnit(), "BAR");
         assertEquals(itemDetails.get(0).getTier(), 2);
         assertEquals(itemDetails.get(0).getAmount().compareTo(new BigDecimal("2020.0")), 0);
         assertEquals(itemDetails.get(0).getQuantity().intValue(), 101);
         assertEquals(itemDetails.get(0).getTierPrice().compareTo(new BigDecimal("20.0")), 0);
         // FOO: 76 * 100 = 7500
+        assertEquals(itemDetails.get(1).getTierUnit(), "FOO");
         assertEquals(itemDetails.get(1).getTier(), 3);
         assertEquals(itemDetails.get(1).getAmount().compareTo(new BigDecimal("7500")), 0);
         assertEquals(itemDetails.get(1).getQuantity().intValue(), 75);
@@ -771,13 +782,6 @@ public class TestContiguousIntervalConsumableInArrear extends TestUsageInArrearB
 
         final ContiguousIntervalUsageInArrear intervalConsumableInArrear = createContiguousIntervalConsumableInArrear(usage, rawUsages, targetDate, true, usageDetailMode, event1, event2);
 
-        final List<InvoiceItem> invoiceItems = new ArrayList<InvoiceItem>();
-        final InvoiceItem ii1 = new UsageInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, planName, phaseName, usage.getName(), startDate, firstBCDDate, BigDecimal.ONE, currency);
-        invoiceItems.add(ii1);
-
-        final InvoiceItem ii2 = new UsageInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, planName, phaseName, usage.getName(), firstBCDDate, endDate, BigDecimal.ONE, currency);
-        invoiceItems.add(ii2);
-
         final UsageInArrearItemsAndNextNotificationDate usageResult = intervalConsumableInArrear.computeMissingItemsAndNextNotificationDate(ImmutableList.<InvoiceItem>of());
         final List<InvoiceItem> rawResults = usageResult.getInvoiceItems();
         final List<InvoiceItem> result = ImmutableList.copyOf(Iterables.filter(rawResults, new Predicate<InvoiceItem>() {