killbill-aplcache

jaxrs: switch UUID to String in InvoiceItemJsonSimple Also

7/31/2012 6:37:45 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 9a1d2de..bf09acf 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
@@ -17,7 +17,9 @@
 package com.ning.billing.jaxrs.json;
 
 import java.math.BigDecimal;
-import java.util.UUID;
+import java.util.List;
+
+import javax.annotation.Nullable;
 
 import org.joda.time.LocalDate;
 
@@ -26,13 +28,13 @@ import com.ning.billing.invoice.api.InvoiceItem;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
-public class InvoiceItemJsonSimple {
+public class InvoiceItemJsonSimple extends JsonBase {
 
-    private final UUID invoiceItemId;
-    private final UUID invoiceId;
-    private final UUID accountId;
-    private final UUID bundleId;
-    private final UUID subscriptionId;
+    private final String invoiceItemId;
+    private final String invoiceId;
+    private final String accountId;
+    private final String bundleId;
+    private final String subscriptionId;
     private final String planName;
     private final String phaseName;
     private final String description;
@@ -41,18 +43,20 @@ public class InvoiceItemJsonSimple {
     private final BigDecimal amount;
     private final Currency currency;
 
-    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,
+    public InvoiceItemJsonSimple(@JsonProperty("invoiceItemId") final String invoiceItemId,
+                                 @JsonProperty("invoiceId") final String invoiceId,
+                                 @JsonProperty("accountId") final String accountId,
+                                 @JsonProperty("bundleId") final String bundleId,
+                                 @JsonProperty("subscriptionId") final String subscriptionId,
                                  @JsonProperty("planName") final String planName,
                                  @JsonProperty("phaseName") final String phaseName,
                                  @JsonProperty("description") final String description,
                                  @JsonProperty("startDate") final LocalDate startDate,
                                  @JsonProperty("endDate") final LocalDate endDate,
                                  @JsonProperty("amount") final BigDecimal amount,
-                                 @JsonProperty("currency") final Currency currency) {
+                                 @JsonProperty("currency") final Currency currency,
+                                 @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
+        super(auditLogs);
         this.invoiceItemId = invoiceItemId;
         this.invoiceId = invoiceId;
         this.accountId = accountId;
@@ -68,28 +72,29 @@ public class InvoiceItemJsonSimple {
     }
 
     public InvoiceItemJsonSimple(final InvoiceItem item) {
-        this(item.getId(), item.getInvoiceId(), item.getAccountId(), item.getBundleId(), item.getSubscriptionId(),
+        this(toString(item.getId()), toString(item.getInvoiceId()), toString(item.getAccountId()),
+             toString(item.getBundleId()), toString(item.getSubscriptionId()),
              item.getPlanName(), item.getPhaseName(), item.getDescription(), item.getStartDate(), item.getEndDate(),
-             item.getAmount(), item.getCurrency());
+             item.getAmount(), item.getCurrency(), null);
     }
 
-    public UUID getInvoiceItemId() {
+    public String getInvoiceItemId() {
         return invoiceItemId;
     }
 
-    public UUID getInvoiceId() {
+    public String getInvoiceId() {
         return invoiceId;
     }
 
-    public UUID getAccountId() {
+    public String getAccountId() {
         return accountId;
     }
 
-    public UUID getBundleId() {
+    public String getBundleId() {
         return bundleId;
     }
 
-    public UUID getSubscriptionId() {
+    public String getSubscriptionId() {
         return subscriptionId;
     }
 
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/JsonBase.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/JsonBase.java
index b3e078c..315e74d 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/JsonBase.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/JsonBase.java
@@ -17,6 +17,7 @@
 package com.ning.billing.jaxrs.json;
 
 import java.util.List;
+import java.util.UUID;
 
 import javax.annotation.Nullable;
 
@@ -55,6 +56,10 @@ public abstract class JsonBase {
         return auditLogs.get(0).getReasonCode();
     }
 
+    protected static String toString(@Nullable final UUID id) {
+        return id == null ? null : id.toString();
+    }
+
     public List<AuditLogJson> getAuditLogs() {
         return auditLogs;
     }
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 327bc83..a182119 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
@@ -17,6 +17,7 @@
 package com.ning.billing.jaxrs.json;
 
 import java.math.BigDecimal;
+import java.util.List;
 import java.util.UUID;
 
 import org.joda.time.LocalDate;
@@ -36,11 +37,11 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
 
     @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();
-        final UUID subscriptionId = UUID.randomUUID();
+        final String invoiceItemId = UUID.randomUUID().toString();
+        final String invoiceId = UUID.randomUUID().toString();
+        final String accountId = UUID.randomUUID().toString();
+        final String bundleId = UUID.randomUUID().toString();
+        final String subscriptionId = UUID.randomUUID().toString();
         final String planName = UUID.randomUUID().toString();
         final String phaseName = UUID.randomUUID().toString();
         final String description = UUID.randomUUID().toString();
@@ -48,9 +49,10 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
         final LocalDate endDate = clock.getUTCToday();
         final BigDecimal amount = BigDecimal.TEN;
         final Currency currency = Currency.MXN;
+        final List<AuditLogJson> auditLogs = createAuditLogsJson();
         final InvoiceItemJsonSimple invoiceItemJsonSimple = new InvoiceItemJsonSimple(invoiceItemId, invoiceId, accountId, bundleId, subscriptionId,
                                                                                       planName, phaseName, description, startDate, endDate,
-                                                                                      amount, currency);
+                                                                                      amount, currency, auditLogs);
         Assert.assertEquals(invoiceItemJsonSimple.getInvoiceItemId(), invoiceItemId);
         Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceId);
         Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), accountId);
@@ -63,6 +65,7 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
         Assert.assertEquals(invoiceItemJsonSimple.getEndDate(), endDate);
         Assert.assertEquals(invoiceItemJsonSimple.getAmount(), amount);
         Assert.assertEquals(invoiceItemJsonSimple.getCurrency(), currency);
+        Assert.assertEquals(invoiceItemJsonSimple.getAuditLogs(), auditLogs);
 
         final String asJson = mapper.writeValueAsString(invoiceItemJsonSimple);
         final InvoiceItemJsonSimple fromJson = mapper.readValue(asJson, InvoiceItemJsonSimple.class);
@@ -86,11 +89,11 @@ 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());
-        Assert.assertEquals(invoiceItemJsonSimple.getSubscriptionId(), invoiceItem.getSubscriptionId());
+        Assert.assertEquals(invoiceItemJsonSimple.getInvoiceItemId(), invoiceItem.getId().toString());
+        Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceItem.getInvoiceId().toString());
+        Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), invoiceItem.getAccountId().toString());
+        Assert.assertEquals(invoiceItemJsonSimple.getBundleId(), invoiceItem.getBundleId().toString());
+        Assert.assertEquals(invoiceItemJsonSimple.getSubscriptionId(), invoiceItem.getSubscriptionId().toString());
         Assert.assertEquals(invoiceItemJsonSimple.getPlanName(), invoiceItem.getPlanName());
         Assert.assertEquals(invoiceItemJsonSimple.getPhaseName(), invoiceItem.getPhaseName());
         Assert.assertEquals(invoiceItemJsonSimple.getDescription(), invoiceItem.getDescription());
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 280b831..1b310f6 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
@@ -99,10 +99,10 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuite {
         Assert.assertNull(invoiceJsonWithItems.getAuditLogs());
 
         final InvoiceItemJsonSimple invoiceItemJsonSimple = invoiceJsonWithItems.getItems().get(0);
-        Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceItem.getInvoiceId());
-        Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), invoiceItem.getAccountId());
-        Assert.assertEquals(invoiceItemJsonSimple.getBundleId(), invoiceItem.getBundleId());
-        Assert.assertEquals(invoiceItemJsonSimple.getSubscriptionId(), invoiceItem.getSubscriptionId());
+        Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceItem.getInvoiceId().toString());
+        Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), invoiceItem.getAccountId().toString());
+        Assert.assertEquals(invoiceItemJsonSimple.getBundleId(), invoiceItem.getBundleId().toString());
+        Assert.assertEquals(invoiceItemJsonSimple.getSubscriptionId(), invoiceItem.getSubscriptionId().toString());
         Assert.assertEquals(invoiceItemJsonSimple.getPlanName(), invoiceItem.getPlanName());
         Assert.assertEquals(invoiceItemJsonSimple.getPhaseName(), invoiceItem.getPhaseName());
         Assert.assertEquals(invoiceItemJsonSimple.getDescription(), invoiceItem.getDescription());
@@ -113,11 +113,11 @@ 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();
-        final UUID subscriptionId = UUID.randomUUID();
+        final String invoiceItemId = UUID.randomUUID().toString();
+        final String invoiceId = UUID.randomUUID().toString();
+        final String accountId = UUID.randomUUID().toString();
+        final String bundleId = UUID.randomUUID().toString();
+        final String subscriptionId = UUID.randomUUID().toString();
         final String planName = UUID.randomUUID().toString();
         final String phaseName = UUID.randomUUID().toString();
         final String description = UUID.randomUUID().toString();
@@ -127,7 +127,7 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuite {
         final Currency currency = Currency.MXN;
         return new InvoiceItemJsonSimple(invoiceItemId, invoiceId, accountId, bundleId, subscriptionId,
                                          planName, phaseName, description, startDate, endDate,
-                                         amount, currency);
+                                         amount, currency, null);
     }
 
     private InvoiceItem createInvoiceItem() {