Details
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java
index b3fd236..577e84c 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java
@@ -22,6 +22,7 @@ import java.util.List;
import javax.annotation.Nullable;
import org.joda.time.LocalDate;
+import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.invoice.api.Invoice;
import org.killbill.billing.invoice.api.InvoiceItem;
import org.killbill.billing.util.audit.AuditLog;
@@ -41,10 +42,12 @@ public class CreditJson extends JsonBase {
@ApiModelProperty(dataType = "java.util.UUID", required = true)
private final String accountId;
private final String description;
+ private final Currency currency;
@JsonCreator
public CreditJson(@JsonProperty("creditAmount") final BigDecimal creditAmount,
+ @JsonProperty("currency") final Currency currency,
@JsonProperty("invoiceId") final String invoiceId,
@JsonProperty("invoiceNumber") final String invoiceNumber,
@JsonProperty("effectiveDate") final LocalDate effectiveDate,
@@ -53,6 +56,7 @@ public class CreditJson extends JsonBase {
@JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
super(auditLogs);
this.creditAmount = creditAmount;
+ this.currency = currency;
this.invoiceId = invoiceId;
this.invoiceNumber = invoiceNumber;
this.effectiveDate = effectiveDate;
@@ -64,6 +68,7 @@ public class CreditJson extends JsonBase {
super(toAuditLogJson(auditLogs));
this.accountId = toString(credit.getAccountId());
this.creditAmount = credit.getAmount();
+ this.currency = credit.getCurrency();
this.invoiceId = toString(credit.getInvoiceId());
this.invoiceNumber = invoice.getInvoiceNumber().toString();
this.effectiveDate = credit.getStartDate();
@@ -98,11 +103,16 @@ public class CreditJson extends JsonBase {
return description;
}
+ public Currency getCurrency() {
+ return currency;
+ }
+
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("CreditJson");
sb.append("{creditAmount=").append(creditAmount);
+ sb.append(", currency=").append(currency);
sb.append(", invoiceId=").append(invoiceId);
sb.append(", invoiceNumber='").append(invoiceNumber).append('\'');
sb.append(", effectiveDate=").append(effectiveDate);
@@ -127,6 +137,9 @@ public class CreditJson extends JsonBase {
(creditAmount != null && that.creditAmount != null && creditAmount.compareTo(that.creditAmount) == 0))) {
return false;
}
+ if (currency != that.currency) {
+ return false;
+ }
if (invoiceId != null ? !invoiceId.equals(that.invoiceId) : that.invoiceId != null) {
return false;
}
@@ -147,6 +160,7 @@ public class CreditJson extends JsonBase {
@Override
public int hashCode() {
int result = creditAmount != null ? creditAmount.hashCode() : 0;
+ result = 31 * result + (currency != null ? currency.hashCode() : 0);
result = 31 * result + (invoiceId != null ? invoiceId.hashCode() : 0);
result = 31 * result + (description != null ? description.hashCode() : 0);
result = 31 * result + (invoiceNumber != null ? invoiceNumber.hashCode() : 0);
diff --git a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java
index e698ec6..0051242 100644
--- a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java
+++ b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java
@@ -22,6 +22,7 @@ import java.util.UUID;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
+import org.killbill.billing.catalog.api.Currency;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -34,12 +35,13 @@ public class TestCreditJson extends JaxrsTestSuiteNoDB {
@Test(groups = "fast")
public void testJson() throws Exception {
final BigDecimal creditAmount = BigDecimal.TEN;
+ final Currency currency = Currency.AED;
final String invoiceId = UUID.randomUUID().toString();
final String invoiceNumber = UUID.randomUUID().toString();
final LocalDate effectiveDate = clock.getUTCToday();
final String accountId = UUID.randomUUID().toString();
final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
- final CreditJson creditJson = new CreditJson(creditAmount, invoiceId, invoiceNumber, effectiveDate,
+ final CreditJson creditJson = new CreditJson(creditAmount, currency, invoiceId, invoiceNumber, effectiveDate,
accountId, null, auditLogs);
Assert.assertEquals(creditJson.getEffectiveDate(), effectiveDate);
Assert.assertEquals(creditJson.getCreditAmount(), creditAmount);
diff --git a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
index 89f1074..fd09baa 100644
--- a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
+++ b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
@@ -106,10 +106,11 @@ public class TestInvoiceJsonWithBundleKeys extends JaxrsTestSuiteNoDB {
private CreditJson createCreditJson() {
final BigDecimal creditAmount = BigDecimal.TEN;
+ final Currency currency = Currency.USD;
final String invoiceId = UUID.randomUUID().toString();
final String invoiceNumber = UUID.randomUUID().toString();
final LocalDate effectiveDate = clock.getUTCToday();
final String accountId = UUID.randomUUID().toString();
- return new CreditJson(creditAmount, invoiceId, invoiceNumber, effectiveDate, accountId, null, null);
+ return new CreditJson(creditAmount, currency, invoiceId, invoiceNumber, effectiveDate, accountId, null, null);
}
}