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);
}