killbill-aplcache

analytics: add tests for BusinessInvoice and BusinessInvoiceItem

6/21/2012 2:52:50 PM

Details

diff --git a/analytics/src/test/java/com/ning/billing/analytics/model/TestBusinessInvoice.java b/analytics/src/test/java/com/ning/billing/analytics/model/TestBusinessInvoice.java
new file mode 100644
index 0000000..869284d
--- /dev/null
+++ b/analytics/src/test/java/com/ning/billing/analytics/model/TestBusinessInvoice.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2010-2012 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at:
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.analytics.model;
+
+import java.math.BigDecimal;
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import com.ning.billing.analytics.AnalyticsTestSuite;
+import com.ning.billing.catalog.api.Currency;
+
+public class TestBusinessInvoice extends AnalyticsTestSuite {
+    @Test(groups = "fast")
+    public void testEquals() throws Exception {
+        final String accountKey = UUID.randomUUID().toString();
+        final BigDecimal amountCharged = BigDecimal.ZERO;
+        final BigDecimal amountCredited = BigDecimal.ONE;
+        final BigDecimal amountPaid = BigDecimal.TEN;
+        final BigDecimal balance = BigDecimal.valueOf(123L);
+        final DateTime createdDate = new DateTime(DateTimeZone.UTC);
+        final Currency currency = Currency.MXN;
+        final DateTime invoiceDate = new DateTime(DateTimeZone.UTC);
+        final UUID invoiceId = UUID.randomUUID();
+        final DateTime targetDate = new DateTime(DateTimeZone.UTC);
+        final DateTime updatedDate = new DateTime(DateTimeZone.UTC);
+        final BusinessInvoice invoice = new BusinessInvoice(accountKey, amountCharged, amountCredited, amountPaid, balance,
+                                                            createdDate, currency, invoiceDate, invoiceId, targetDate, updatedDate);
+        Assert.assertSame(invoice, invoice);
+        Assert.assertEquals(invoice, invoice);
+        Assert.assertTrue(invoice.equals(invoice));
+        Assert.assertEquals(invoice.getAccountKey(), accountKey);
+        Assert.assertEquals(invoice.getAmountCharged(), amountCharged);
+        Assert.assertEquals(invoice.getAmountCredited(), amountCredited);
+        Assert.assertEquals(invoice.getAmountPaid(), amountPaid);
+        Assert.assertEquals(invoice.getBalance(), balance);
+        Assert.assertEquals(invoice.getCreatedDate(), createdDate);
+        Assert.assertEquals(invoice.getCurrency(), currency);
+        Assert.assertEquals(invoice.getInvoiceDate(), invoiceDate);
+        Assert.assertEquals(invoice.getInvoiceId(), invoiceId);
+        Assert.assertEquals(invoice.getTargetDate(), targetDate);
+        Assert.assertEquals(invoice.getUpdatedDate(), updatedDate);
+
+        final BusinessInvoice otherInvoice = new BusinessInvoice(null, null, null, null, null, createdDate, null,
+                                                                 null, invoiceId, null, null);
+        Assert.assertFalse(invoice.equals(otherInvoice));
+
+        // Test setters
+        otherInvoice.setAccountKey(accountKey);
+        otherInvoice.setAmountCharged(amountCharged);
+        otherInvoice.setAmountCredited(amountCredited);
+        otherInvoice.setAmountPaid(amountPaid);
+        otherInvoice.setBalance(balance);
+        otherInvoice.setCurrency(currency);
+        otherInvoice.setInvoiceDate(invoiceDate);
+        otherInvoice.setTargetDate(targetDate);
+        otherInvoice.setUpdatedDate(updatedDate);
+        Assert.assertTrue(invoice.equals(otherInvoice));
+    }
+}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/model/TestBusinessInvoiceItem.java b/analytics/src/test/java/com/ning/billing/analytics/model/TestBusinessInvoiceItem.java
new file mode 100644
index 0000000..e4460f6
--- /dev/null
+++ b/analytics/src/test/java/com/ning/billing/analytics/model/TestBusinessInvoiceItem.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2010-2012 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at:
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.analytics.model;
+
+import java.math.BigDecimal;
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import com.ning.billing.analytics.AnalyticsTestSuite;
+import com.ning.billing.catalog.api.Currency;
+
+public class TestBusinessInvoiceItem extends AnalyticsTestSuite {
+    @Test(groups = "fast")
+    public void testEquals() throws Exception {
+        final BigDecimal amount = BigDecimal.TEN;
+        final String billingPeriod = UUID.randomUUID().toString();
+        final DateTime createdDate = new DateTime(DateTimeZone.UTC);
+        final Currency currency = Currency.AUD;
+        final DateTime endDate = new DateTime(DateTimeZone.UTC);
+        final String externalKey = UUID.randomUUID().toString();
+        final UUID invoiceId = UUID.randomUUID();
+        final UUID itemId = UUID.randomUUID();
+        final String itemType = UUID.randomUUID().toString();
+        final String phase = UUID.randomUUID().toString();
+        final String productCategory = UUID.randomUUID().toString();
+        final String productName = UUID.randomUUID().toString();
+        final String productType = UUID.randomUUID().toString();
+        final String slug = UUID.randomUUID().toString();
+        final DateTime startDate = new DateTime(DateTimeZone.UTC);
+        final DateTime updatedDate = new DateTime(DateTimeZone.UTC);
+        final BusinessInvoiceItem invoiceItem = new BusinessInvoiceItem(amount, billingPeriod, createdDate, currency,
+                                                                        endDate, externalKey, invoiceId, itemId, itemType,
+                                                                        phase, productCategory, productName, productType,
+                                                                        slug, startDate, updatedDate);
+        Assert.assertSame(invoiceItem, invoiceItem);
+        Assert.assertEquals(invoiceItem, invoiceItem);
+        Assert.assertTrue(invoiceItem.equals(invoiceItem));
+        Assert.assertEquals(invoiceItem.getAmount(), amount);
+        Assert.assertEquals(invoiceItem.getBillingPeriod(), billingPeriod);
+        Assert.assertEquals(invoiceItem.getCreatedDate(), createdDate);
+        Assert.assertEquals(invoiceItem.getCurrency(), currency);
+        Assert.assertEquals(invoiceItem.getEndDate(), endDate);
+        Assert.assertEquals(invoiceItem.getExternalKey(), externalKey);
+        Assert.assertEquals(invoiceItem.getInvoiceId(), invoiceId);
+        Assert.assertEquals(invoiceItem.getItemId(), itemId);
+        Assert.assertEquals(invoiceItem.getItemType(), itemType);
+        Assert.assertEquals(invoiceItem.getPhase(), phase);
+        Assert.assertEquals(invoiceItem.getProductCategory(), productCategory);
+        Assert.assertEquals(invoiceItem.getProductName(), productName);
+        Assert.assertEquals(invoiceItem.getProductType(), productType);
+        Assert.assertEquals(invoiceItem.getSlug(), slug);
+        Assert.assertEquals(invoiceItem.getStartDate(), startDate);
+        Assert.assertEquals(invoiceItem.getUpdatedDate(), updatedDate);
+
+        final BusinessInvoiceItem otherInvoiceItem = new BusinessInvoiceItem(null, null, createdDate, null, null, null, null, itemId,
+                                                                             null, null, null, null, null, null, null, null);
+        Assert.assertFalse(invoiceItem.equals(otherInvoiceItem));
+
+        // Test setters
+        otherInvoiceItem.setAmount(amount);
+        otherInvoiceItem.setBillingPeriod(billingPeriod);
+        otherInvoiceItem.setCurrency(currency);
+        otherInvoiceItem.setEndDate(endDate);
+        otherInvoiceItem.setExternalKey(externalKey);
+        otherInvoiceItem.setInvoiceId(invoiceId);
+        otherInvoiceItem.setItemType(itemType);
+        otherInvoiceItem.setPhase(phase);
+        otherInvoiceItem.setProductCategory(productCategory);
+        otherInvoiceItem.setProductName(productName);
+        otherInvoiceItem.setProductType(productType);
+        otherInvoiceItem.setSlug(slug);
+        otherInvoiceItem.setStartDate(startDate);
+        otherInvoiceItem.setUpdatedDate(updatedDate);
+        Assert.assertTrue(invoiceItem.equals(otherInvoiceItem));
+    }
+}