killbill-memoizeit

jaxrs: add invoiceItemId to InvoiceItemJsonSimple Signed-off-by:

7/31/2012 3:08:02 PM

Details

diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceItemJsonSimple.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceItemJsonSimple.java
index 5c2991c..9a1d2de 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceItemJsonSimple.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceItemJsonSimple.java
@@ -19,14 +19,16 @@ package com.ning.billing.jaxrs.json;
 import java.math.BigDecimal;
 import java.util.UUID;
 
-import org.joda.time.DateTime;
 import org.joda.time.LocalDate;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.invoice.api.InvoiceItem;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 public class InvoiceItemJsonSimple {
+
+    private final UUID invoiceItemId;
     private final UUID invoiceId;
     private final UUID accountId;
     private final UUID bundleId;
@@ -39,7 +41,8 @@ public class InvoiceItemJsonSimple {
     private final BigDecimal amount;
     private final Currency currency;
 
-    public InvoiceItemJsonSimple(@JsonProperty("invoiceId") final UUID invoiceId,
+    public InvoiceItemJsonSimple(@JsonProperty("invoiceItemId") final UUID invoiceItemId,
+                                 @JsonProperty("invoiceId") final UUID invoiceId,
                                  @JsonProperty("accountId") final UUID accountId,
                                  @JsonProperty("bundleId") final UUID bundleId,
                                  @JsonProperty("subscriptionId") final UUID subscriptionId,
@@ -50,6 +53,7 @@ public class InvoiceItemJsonSimple {
                                  @JsonProperty("endDate") final LocalDate endDate,
                                  @JsonProperty("amount") final BigDecimal amount,
                                  @JsonProperty("currency") final Currency currency) {
+        this.invoiceItemId = invoiceItemId;
         this.invoiceId = invoiceId;
         this.accountId = accountId;
         this.bundleId = bundleId;
@@ -64,11 +68,15 @@ public class InvoiceItemJsonSimple {
     }
 
     public InvoiceItemJsonSimple(final InvoiceItem item) {
-        this(item.getInvoiceId(), item.getAccountId(), item.getBundleId(), item.getSubscriptionId(),
+        this(item.getId(), item.getInvoiceId(), item.getAccountId(), item.getBundleId(), item.getSubscriptionId(),
              item.getPlanName(), item.getPhaseName(), item.getDescription(), item.getStartDate(), item.getEndDate(),
              item.getAmount(), item.getCurrency());
     }
 
+    public UUID getInvoiceItemId() {
+        return invoiceItemId;
+    }
+
     public UUID getInvoiceId() {
         return invoiceId;
     }
@@ -128,7 +136,7 @@ public class InvoiceItemJsonSimple {
             return false;
         }
         if (!((amount == null && that.amount == null) ||
-                (amount != null && that.amount != null && amount.compareTo(that.amount) == 0))) {
+              (amount != null && that.amount != null && amount.compareTo(that.amount) == 0))) {
             return false;
         }
         if (bundleId != null ? !bundleId.equals(that.bundleId) : that.bundleId != null) {
@@ -141,7 +149,10 @@ public class InvoiceItemJsonSimple {
             return false;
         }
         if (!((endDate == null && that.endDate == null) ||
-                (endDate != null && that.endDate != null && endDate.compareTo(that.endDate) == 0))) {
+              (endDate != null && that.endDate != null && endDate.compareTo(that.endDate) == 0))) {
+            return false;
+        }
+        if (invoiceItemId != null ? !invoiceItemId.equals(that.invoiceItemId) : that.invoiceItemId != null) {
             return false;
         }
         if (invoiceId != null ? !invoiceId.equals(that.invoiceId) : that.invoiceId != null) {
@@ -154,7 +165,7 @@ public class InvoiceItemJsonSimple {
             return false;
         }
         if (!((startDate == null && that.startDate == null) ||
-                (startDate != null && that.startDate != null && startDate.compareTo(that.startDate) == 0))) {
+              (startDate != null && that.startDate != null && startDate.compareTo(that.startDate) == 0))) {
             return false;
         }
         if (subscriptionId != null ? !subscriptionId.equals(that.subscriptionId) : that.subscriptionId != null) {
@@ -167,6 +178,7 @@ public class InvoiceItemJsonSimple {
     @Override
     public int hashCode() {
         int result = invoiceId != null ? invoiceId.hashCode() : 0;
+        result = 31 * result + (invoiceItemId != null ? invoiceItemId.hashCode() : 0);
         result = 31 * result + (accountId != null ? accountId.hashCode() : 0);
         result = 31 * result + (bundleId != null ? bundleId.hashCode() : 0);
         result = 31 * result + (subscriptionId != null ? subscriptionId.hashCode() : 0);
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceItemJsonSimple.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceItemJsonSimple.java
index 8168844..327bc83 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceItemJsonSimple.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceItemJsonSimple.java
@@ -30,23 +30,13 @@ import com.ning.billing.jaxrs.JaxrsTestSuite;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.clock.DefaultClock;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.datatype.joda.JodaModule;
-
 public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
 
-    private static final ObjectMapper mapper = new ObjectMapper();
-
     private final Clock clock = new DefaultClock();
 
-    static {
-        mapper.registerModule(new JodaModule());
-        mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
-    }
-
     @Test(groups = "fast")
     public void testJson() throws Exception {
+        final UUID invoiceItemId = UUID.randomUUID();
         final UUID invoiceId = UUID.randomUUID();
         final UUID accountId = UUID.randomUUID();
         final UUID bundleId = UUID.randomUUID();
@@ -58,9 +48,10 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
         final LocalDate endDate = clock.getUTCToday();
         final BigDecimal amount = BigDecimal.TEN;
         final Currency currency = Currency.MXN;
-        final InvoiceItemJsonSimple invoiceItemJsonSimple = new InvoiceItemJsonSimple(invoiceId, accountId, bundleId, subscriptionId,
+        final InvoiceItemJsonSimple invoiceItemJsonSimple = new InvoiceItemJsonSimple(invoiceItemId, invoiceId, accountId, bundleId, subscriptionId,
                                                                                       planName, phaseName, description, startDate, endDate,
                                                                                       amount, currency);
+        Assert.assertEquals(invoiceItemJsonSimple.getInvoiceItemId(), invoiceItemId);
         Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceId);
         Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), accountId);
         Assert.assertEquals(invoiceItemJsonSimple.getBundleId(), bundleId);
@@ -74,18 +65,6 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
         Assert.assertEquals(invoiceItemJsonSimple.getCurrency(), currency);
 
         final String asJson = mapper.writeValueAsString(invoiceItemJsonSimple);
-        Assert.assertEquals(asJson, "{\"invoiceId\":\"" + invoiceItemJsonSimple.getInvoiceId().toString() + "\"," +
-                                    "\"accountId\":\"" + invoiceItemJsonSimple.getAccountId().toString() + "\"," +
-                                    "\"bundleId\":\"" + invoiceItemJsonSimple.getBundleId().toString() + "\"," +
-                                    "\"subscriptionId\":\"" + invoiceItemJsonSimple.getSubscriptionId().toString() + "\"," +
-                                    "\"planName\":\"" + invoiceItemJsonSimple.getPlanName() + "\"," +
-                                    "\"phaseName\":\"" + invoiceItemJsonSimple.getPhaseName() + "\"," +
-                                    "\"description\":\"" + invoiceItemJsonSimple.getDescription() + "\"," +
-                                    "\"startDate\":\"" + invoiceItemJsonSimple.getStartDate().toString() + "\"," +
-                                    "\"endDate\":\"" + invoiceItemJsonSimple.getEndDate().toString() + "\"," +
-                                    "\"amount\":" + invoiceItemJsonSimple.getAmount().toString() + "," +
-                                    "\"currency\":\"" + invoiceItemJsonSimple.getCurrency().toString() + "\"}");
-
         final InvoiceItemJsonSimple fromJson = mapper.readValue(asJson, InvoiceItemJsonSimple.class);
         Assert.assertEquals(fromJson, invoiceItemJsonSimple);
     }
@@ -93,6 +72,7 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
     @Test(groups = "fast")
     public void testFromInvoiceItem() throws Exception {
         final InvoiceItem invoiceItem = Mockito.mock(InvoiceItem.class);
+        Mockito.when(invoiceItem.getId()).thenReturn(UUID.randomUUID());
         Mockito.when(invoiceItem.getInvoiceId()).thenReturn(UUID.randomUUID());
         Mockito.when(invoiceItem.getAccountId()).thenReturn(UUID.randomUUID());
         Mockito.when(invoiceItem.getBundleId()).thenReturn(UUID.randomUUID());
@@ -106,6 +86,7 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
         Mockito.when(invoiceItem.getCurrency()).thenReturn(Currency.EUR);
 
         final InvoiceItemJsonSimple invoiceItemJsonSimple = new InvoiceItemJsonSimple(invoiceItem);
+        Assert.assertEquals(invoiceItemJsonSimple.getInvoiceItemId(), invoiceItem.getId());
         Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceItem.getInvoiceId());
         Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), invoiceItem.getAccountId());
         Assert.assertEquals(invoiceItemJsonSimple.getBundleId(), invoiceItem.getBundleId());
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java
index c66bc4f..280b831 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java
@@ -113,6 +113,7 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuite {
     }
 
     private InvoiceItemJsonSimple createInvoiceItemJson() {
+        final UUID invoiceItemId = UUID.randomUUID();
         final UUID invoiceId = UUID.randomUUID();
         final UUID accountId = UUID.randomUUID();
         final UUID bundleId = UUID.randomUUID();
@@ -124,7 +125,7 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuite {
         final LocalDate endDate = clock.getUTCToday();
         final BigDecimal amount = BigDecimal.TEN;
         final Currency currency = Currency.MXN;
-        return new InvoiceItemJsonSimple(invoiceId, accountId, bundleId, subscriptionId,
+        return new InvoiceItemJsonSimple(invoiceItemId, invoiceId, accountId, bundleId, subscriptionId,
                                          planName, phaseName, description, startDate, endDate,
                                          amount, currency);
     }