killbill-memoizeit

invoice: add another test for DefaultInvoiceGenerator Signed-off-by:

7/16/2012 10:44:10 PM

Details

diff --git a/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java b/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java
index 26239bf..8842d3d 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java
@@ -352,6 +352,7 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
             }
         }
 
+        log.info("Generated invoice items [{}] from event [{}]", items, thisEvent);
         return items;
     }
 
diff --git a/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java b/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java
index 6055978..8d36804 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java
@@ -183,13 +183,35 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
         assertNotNull(invoice);
         assertEquals(invoice.getNumberOfItems(), 2);
         assertEquals(invoice.getInvoiceItems().get(0).getStartDate(), buildDate(2012, 7, 16));
-        // TODO should this be 2012-08-15?
         assertEquals(invoice.getInvoiceItems().get(0).getEndDate(), buildDate(2012, 8, 16));
         assertEquals(invoice.getInvoiceItems().get(1).getStartDate(), buildDate(2012, 8, 16));
         assertEquals(invoice.getInvoiceItems().get(1).getEndDate(), buildDate(2012, 9, 16));
     }
 
     @Test(groups = "fast")
+    public void testSimpleWithSingleDiscountEvent() throws Exception {
+        final UUID accountId = UUID.randomUUID();
+        final Subscription sub = createZombieSubscription();
+        final Plan plan = new MockPlan("Plan with a single discount phase");
+        final PlanPhase phaseEvergreen = createMockMonthlyPlanPhase(EIGHT, PhaseType.DISCOUNT);
+        final DateTimeZone accountTimeZone = DateTimeZone.UTC;
+        final int bcdUTC = 16;
+        final LocalDate startDate = buildDate(2012, 7, 16);
+
+        final BillingEventSet events = new MockBillingEventSet();
+        events.add(createBillingEvent(sub.getId(), startDate, plan, phaseEvergreen, bcdUTC));
+
+        // Set a target date of today (start date)
+        final LocalDate targetDate = startDate;
+        final Invoice invoice = generator.generateInvoice(accountId, events, null, targetDate, accountTimeZone, Currency.USD);
+
+        assertNotNull(invoice);
+        assertEquals(invoice.getNumberOfItems(), 1);
+        assertEquals(invoice.getInvoiceItems().get(0).getStartDate(), buildDate(2012, 7, 16));
+        assertEquals(invoice.getInvoiceItems().get(0).getEndDate(), buildDate(2012, 8, 16));
+    }
+
+    @Test(groups = "fast")
     public void testWithSingleMonthlyEventWithLeadingProRation() throws InvoiceApiException, CatalogApiException {
         final BillingEventSet events = new MockBillingEventSet();