killbill-memoizeit

invoice: don't try to generate something if there is no invoice Signed-off-by:

7/3/2012 3:04:04 PM

Details

diff --git a/invoice/src/main/java/com/ning/billing/invoice/template/HtmlInvoiceGenerator.java b/invoice/src/main/java/com/ning/billing/invoice/template/HtmlInvoiceGenerator.java
index f27bce7..04c5075 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/template/HtmlInvoiceGenerator.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/template/HtmlInvoiceGenerator.java
@@ -16,6 +16,7 @@
 
 package com.ning.billing.invoice.template;
 
+import javax.annotation.Nullable;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Locale;
@@ -42,7 +43,12 @@ public class HtmlInvoiceGenerator {
         this.config = config;
     }
 
-    public String generateInvoice(final Account account, final Invoice invoice) throws IOException {
+    public String generateInvoice(final Account account, @Nullable final Invoice invoice) throws IOException {
+        // Don't do anything if the invoice is null
+        if (invoice == null) {
+            return null;
+        }
+
         final Map<String, Object> data = new HashMap<String, Object>();
         final DefaultInvoiceTranslator invoiceTranslator = new DefaultInvoiceTranslator(config);
         final Locale locale = new Locale(account.getLocale());
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestHtmlInvoiceGenerator.java b/invoice/src/test/java/com/ning/billing/invoice/TestHtmlInvoiceGenerator.java
index 049e7e4..8c9ace4 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/TestHtmlInvoiceGenerator.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestHtmlInvoiceGenerator.java
@@ -59,12 +59,18 @@ public class TestHtmlInvoiceGenerator {
     }
 
     @Test(groups = "fast")
-    public void testGenerateNullInvoice() throws Exception {
+    public void testGenerateEmptyInvoice() throws Exception {
         final Invoice invoice = Mockito.mock(Invoice.class);
         final String output = g.generateInvoice(createAccount(), invoice);
         Assert.assertNotNull(output);
     }
 
+    @Test(groups = "fast")
+    public void testGenerateNullInvoice() throws Exception {
+        final String output = g.generateInvoice(createAccount(), null);
+        Assert.assertNull(output);
+    }
+
     private Account createAccount() {
         final Account account = BrainDeadProxyFactory.createBrainDeadProxyFor(Account.class);
         final ZombieControl zombieControl = (ZombieControl) account;