killbill-memoizeit

invoice: get rid of InvoiceItemSqlDao#getInvoiceItemsByAccount This

9/23/2013 9:28:58 AM

Details

diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceItemSqlDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceItemSqlDao.java
index 3f71d92..c748dd3 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceItemSqlDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceItemSqlDao.java
@@ -35,10 +35,6 @@ public interface InvoiceItemSqlDao extends EntitySqlDao<InvoiceItemModelDao, Inv
                                                        @BindBean final InternalTenantContext context);
 
     @SqlQuery
-    List<InvoiceItemModelDao> getInvoiceItemsByAccount(@Bind("accountId") final String accountId,
-                                                       @BindBean final InternalTenantContext context);
-
-    @SqlQuery
     List<InvoiceItemModelDao> getInvoiceItemsBySubscription(@Bind("subscriptionId") final String subscriptionId,
                                                             @BindBean final InternalTenantContext context);
 }
diff --git a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceItemSqlDao.sql.stg b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceItemSqlDao.sql.stg
index 5c762b9..f5d7eb2 100644
--- a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceItemSqlDao.sql.stg
+++ b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceItemSqlDao.sql.stg
@@ -47,14 +47,6 @@ getInvoiceItemsByInvoice() ::= <<
   ;
 >>
 
-getInvoiceItemsByAccount() ::= <<
-  SELECT <allTableFields()>
-  FROM <tableName()>
-  WHERE account_id = :accountId
-  <AND_CHECK_TENANT()>
-  ;
->>
-
 getInvoiceItemsBySubscription() ::= <<
   SELECT <allTableFields()>
   FROM <tableName()>
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceItemDao.java b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceItemDao.java
index f788894..102ee8c 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceItemDao.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceItemDao.java
@@ -22,8 +22,10 @@ import java.util.UUID;
 
 import org.joda.time.LocalDate;
 import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
+import com.ning.billing.account.api.Account;
 import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
 import com.ning.billing.invoice.api.InvoiceItem;
@@ -33,6 +35,7 @@ import com.ning.billing.invoice.model.ExternalChargeInvoiceItem;
 import com.ning.billing.invoice.model.FixedPriceInvoiceItem;
 import com.ning.billing.invoice.model.InvoiceItemFactory;
 import com.ning.billing.invoice.model.RecurringInvoiceItem;
+import com.ning.billing.util.callcontext.InternalCallContext;
 import com.ning.billing.util.entity.EntityPersistenceException;
 
 import static com.ning.billing.invoice.TestInvoiceHelper.TEN;
@@ -42,9 +45,18 @@ import static org.testng.Assert.assertTrue;
 
 public class TestInvoiceItemDao extends InvoiceTestSuiteWithEmbeddedDB {
 
+    private Account account;
+    private InternalCallContext context;
+
+    @BeforeMethod(groups = "slow")
+    public void setUp() throws Exception {
+        account = invoiceUtil.createAccount(callContext);
+        context = internalCallContextFactory.createInternalCallContext(account.getId(), callContext);
+    }
+
     @Test(groups = "slow")
     public void testInvoiceItemCreation() throws EntityPersistenceException {
-        final UUID accountId = UUID.randomUUID();
+        final UUID accountId = account.getId();
         final UUID invoiceId = UUID.randomUUID();
         final UUID bundleId = UUID.randomUUID();
         final UUID subscriptionId = UUID.randomUUID();
@@ -54,9 +66,9 @@ public class TestInvoiceItemDao extends InvoiceTestSuiteWithEmbeddedDB {
 
         final RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, "test plan", "test phase", startDate, endDate,
                                                                    rate, rate, Currency.USD);
-        invoiceUtil.createInvoiceItem(item, internalCallContext);
+        invoiceUtil.createInvoiceItem(item, context);
 
-        final InvoiceItemModelDao thisItem = invoiceUtil.getInvoiceItemById(item.getId(), internalCallContext);
+        final InvoiceItemModelDao thisItem = invoiceUtil.getInvoiceItemById(item.getId(), context);
         assertNotNull(thisItem);
         assertEquals(thisItem.getId(), item.getId());
         assertEquals(thisItem.getInvoiceId(), item.getInvoiceId());
@@ -72,7 +84,7 @@ public class TestInvoiceItemDao extends InvoiceTestSuiteWithEmbeddedDB {
 
     @Test(groups = "slow")
     public void testGetInvoiceItemsBySubscriptionId() throws EntityPersistenceException {
-        final UUID accountId = UUID.randomUUID();
+        final UUID accountId = account.getId();
         final UUID subscriptionId = UUID.randomUUID();
         final UUID bundleId = UUID.randomUUID();
         final LocalDate startDate = new LocalDate(2011, 3, 1);
@@ -84,16 +96,16 @@ public class TestInvoiceItemDao extends InvoiceTestSuiteWithEmbeddedDB {
             final RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId,
                                                                        "test plan", "test phase", startDate.plusMonths(i), startDate.plusMonths(i + 1),
                                                                        rate, rate, Currency.USD);
-            invoiceUtil.createInvoiceItem(item, internalCallContext);
+            invoiceUtil.createInvoiceItem(item, context);
         }
 
-        final List<InvoiceItemModelDao> items = invoiceUtil.getInvoiceItemBySubscriptionId(subscriptionId, internalCallContext);
+        final List<InvoiceItemModelDao> items = invoiceUtil.getInvoiceItemBySubscriptionId(subscriptionId, context);
         assertEquals(items.size(), 3);
     }
 
     @Test(groups = "slow")
     public void testGetInvoiceItemsByInvoiceId() throws EntityPersistenceException {
-        final UUID accountId = UUID.randomUUID();
+        final UUID accountId = account.getId();
         final UUID invoiceId = UUID.randomUUID();
         final UUID bundleId = UUID.randomUUID();
         final LocalDate startDate = new LocalDate(2011, 3, 1);
@@ -106,21 +118,21 @@ public class TestInvoiceItemDao extends InvoiceTestSuiteWithEmbeddedDB {
             final RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId,
                                                                        "test plan", "test phase", startDate, startDate.plusMonths(1),
                                                                        amount, amount, Currency.USD);
-            invoiceUtil.createInvoiceItem(item, internalCallContext);
+            invoiceUtil.createInvoiceItem(item, context);
         }
 
-        final List<InvoiceItemModelDao> items = invoiceUtil.getInvoiceItemByInvoiceId(invoiceId, internalCallContext);
+        final List<InvoiceItemModelDao> items = invoiceUtil.getInvoiceItemByInvoiceId(invoiceId, context);
         assertEquals(items.size(), 5);
     }
 
     @Test(groups = "slow")
     public void testGetInvoiceItemsByAccountId() throws EntityPersistenceException {
-        final UUID accountId = UUID.randomUUID();
+        final UUID accountId = account.getId();
         final UUID bundleId = UUID.randomUUID();
         final LocalDate targetDate = new LocalDate(2011, 5, 23);
         final DefaultInvoice invoice = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate, Currency.USD);
 
-        invoiceUtil.createInvoice(invoice, true, internalCallContext);
+        invoiceUtil.createInvoice(invoice, true, context);
 
         final UUID invoiceId = invoice.getId();
         final LocalDate startDate = new LocalDate(2011, 3, 1);
@@ -131,51 +143,51 @@ public class TestInvoiceItemDao extends InvoiceTestSuiteWithEmbeddedDB {
         final RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId,
                                                                    "test plan", "test phase", startDate, startDate.plusMonths(1),
                                                                    rate, rate, Currency.USD);
-        invoiceUtil.createInvoiceItem(item, internalCallContext);
+        invoiceUtil.createInvoiceItem(item, context);
 
-        final List<InvoiceItemModelDao> items = invoiceUtil.getInvoiceItemByAccountId(accountId, internalCallContext);
+        final List<InvoiceItemModelDao> items = invoiceUtil.getInvoiceItemByAccountId(context);
         assertEquals(items.size(), 1);
     }
 
     @Test(groups = "slow")
     public void testCreditBalanceInvoiceSqlDao() throws EntityPersistenceException {
         final UUID invoiceId = UUID.randomUUID();
-        final UUID accountId = UUID.randomUUID();
+        final UUID accountId = account.getId();
         final LocalDate creditDate = new LocalDate(2012, 4, 1);
 
         final InvoiceItem creditInvoiceItem = new CreditBalanceAdjInvoiceItem(invoiceId, accountId, creditDate, TEN, Currency.USD);
-        invoiceUtil.createInvoiceItem(creditInvoiceItem, internalCallContext);
+        invoiceUtil.createInvoiceItem(creditInvoiceItem, context);
 
-        final InvoiceItemModelDao savedItem = invoiceUtil.getInvoiceItemById(creditInvoiceItem.getId(), internalCallContext);
+        final InvoiceItemModelDao savedItem = invoiceUtil.getInvoiceItemById(creditInvoiceItem.getId(), context);
         assertSameInvoiceItem(creditInvoiceItem, savedItem);
     }
 
     @Test(groups = "slow")
     public void testFixedPriceInvoiceSqlDao() throws EntityPersistenceException {
         final UUID invoiceId = UUID.randomUUID();
-        final UUID accountId = UUID.randomUUID();
+        final UUID accountId = account.getId();
         final LocalDate startDate = new LocalDate(2012, 4, 1);
 
         final InvoiceItem fixedPriceInvoiceItem = new FixedPriceInvoiceItem(invoiceId, accountId, UUID.randomUUID(),
                                                                             UUID.randomUUID(), "test plan", "test phase", startDate, TEN, Currency.USD);
-        invoiceUtil.createInvoiceItem(fixedPriceInvoiceItem, internalCallContext);
+        invoiceUtil.createInvoiceItem(fixedPriceInvoiceItem, context);
 
-        final InvoiceItemModelDao savedItem = invoiceUtil.getInvoiceItemById(fixedPriceInvoiceItem.getId(), internalCallContext);
+        final InvoiceItemModelDao savedItem = invoiceUtil.getInvoiceItemById(fixedPriceInvoiceItem.getId(), context);
         assertSameInvoiceItem(fixedPriceInvoiceItem, savedItem);
     }
 
     @Test(groups = "slow")
     public void testExternalChargeInvoiceSqlDao() throws Exception {
         final UUID invoiceId = UUID.randomUUID();
-        final UUID accountId = UUID.randomUUID();
+        final UUID accountId = account.getId();
         final UUID bundleId = UUID.randomUUID();
         final String description = UUID.randomUUID().toString();
         final LocalDate startDate = new LocalDate(2012, 4, 1);
         final InvoiceItem externalChargeInvoiceItem = new ExternalChargeInvoiceItem(invoiceId, accountId, bundleId, description,
                                                                                     startDate, TEN, Currency.USD);
-        invoiceUtil.createInvoiceItem(externalChargeInvoiceItem, internalCallContext);
+        invoiceUtil.createInvoiceItem(externalChargeInvoiceItem, context);
 
-        final InvoiceItemModelDao savedItem = invoiceUtil.getInvoiceItemById(externalChargeInvoiceItem.getId(), internalCallContext);
+        final InvoiceItemModelDao savedItem = invoiceUtil.getInvoiceItemById(externalChargeInvoiceItem.getId(), context);
         assertSameInvoiceItem(externalChargeInvoiceItem, savedItem);
     }
 
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceHelper.java b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceHelper.java
index 4de64a3..dd001a8 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceHelper.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceHelper.java
@@ -245,8 +245,8 @@ public class TestInvoiceHelper {
         return invoiceItemSqlDao.getInvoiceItemsBySubscription(subscriptionId.toString(), internalCallContext);
     }
 
-    public List<InvoiceItemModelDao> getInvoiceItemByAccountId(final UUID accountId, final InternalCallContext internalCallContext) {
-        return invoiceItemSqlDao.getInvoiceItemsByAccount(accountId.toString(), internalCallContext);
+    public List<InvoiceItemModelDao> getInvoiceItemByAccountId(final InternalCallContext internalCallContext) {
+        return invoiceItemSqlDao.getByAccountRecordId(internalCallContext);
     }
 
     public List<InvoiceItemModelDao> getInvoiceItemByInvoiceId(final UUID invoiceId, final InternalCallContext internalCallContext) {