Details
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/RefundJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/RefundJson.java
index b2e1e58..ae23edf 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/RefundJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/RefundJson.java
@@ -38,6 +38,7 @@ public class RefundJson extends JsonBase {
private final String refundId;
private final String paymentId;
private final BigDecimal refundAmount;
+ private final String currency;
private final Boolean isAdjusted;
private final DateTime requestedDate;
private final DateTime effectiveDate;
@@ -47,6 +48,7 @@ public class RefundJson extends JsonBase {
public RefundJson(@JsonProperty("refund_id") final String refundId,
@JsonProperty("paymentId") final String paymentId,
@JsonProperty("refundAmount") final BigDecimal refundAmount,
+ @JsonProperty("currency") final String currency,
@JsonProperty("adjusted") final Boolean isAdjusted,
@JsonProperty("requestedDate") final DateTime requestedDate,
@JsonProperty("effectiveDate") final DateTime effectiveDate,
@@ -56,6 +58,7 @@ public class RefundJson extends JsonBase {
this.refundId = refundId;
this.paymentId = paymentId;
this.refundAmount = refundAmount;
+ this.currency = currency;
this.isAdjusted = isAdjusted;
this.requestedDate = requestedDate;
this.effectiveDate = effectiveDate;
@@ -63,8 +66,8 @@ public class RefundJson extends JsonBase {
}
public RefundJson(final Refund refund, @Nullable final List<InvoiceItem> adjustments, @Nullable final List<AuditLog> auditLogs) {
- this(refund.getId().toString(), refund.getPaymentId().toString(), refund.getRefundAmount(), refund.isAdjusted(),
- refund.getEffectiveDate(), refund.getEffectiveDate(),
+ this(refund.getId().toString(), refund.getPaymentId().toString(), refund.getRefundAmount(), refund.getCurrency().toString(),
+ refund.isAdjusted(), refund.getEffectiveDate(), refund.getEffectiveDate(),
adjustments == null ? null : ImmutableList.<InvoiceItemJsonSimple>copyOf(Collections2.transform(adjustments, new Function<InvoiceItem, InvoiceItemJsonSimple>() {
@Override
public InvoiceItemJsonSimple apply(@Nullable final InvoiceItem input) {
@@ -86,6 +89,10 @@ public class RefundJson extends JsonBase {
return refundAmount;
}
+ public String getCurrency() {
+ return currency;
+ }
+
public boolean isAdjusted() {
return isAdjusted;
}
@@ -109,6 +116,7 @@ public class RefundJson extends JsonBase {
sb.append("{refundId='").append(refundId).append('\'');
sb.append(", paymentId='").append(paymentId).append('\'');
sb.append(", refundAmount=").append(refundAmount);
+ sb.append(", currency=").append(currency);
sb.append(", isAdjusted=").append(isAdjusted);
sb.append(", requestedDate=").append(requestedDate);
sb.append(", effectiveDate=").append(effectiveDate);
@@ -122,6 +130,7 @@ public class RefundJson extends JsonBase {
int result = refundId != null ? refundId.hashCode() : 0;
result = 31 * result + (paymentId != null ? paymentId.hashCode() : 0);
result = 31 * result + (refundAmount != null ? refundAmount.hashCode() : 0);
+ result = 31 * result + (currency != null ? currency.hashCode() : 0);
result = 31 * result + (isAdjusted != null ? isAdjusted.hashCode() : 0);
result = 31 * result + (requestedDate != null ? requestedDate.hashCode() : 0);
result = 31 * result + (effectiveDate != null ? effectiveDate.hashCode() : 0);
@@ -201,6 +210,14 @@ public class RefundJson extends JsonBase {
return false;
}
+ if (currency == null) {
+ if (other.currency != null) {
+ return false;
+ }
+ } else if (!currency.equals(other.currency)) {
+ return false;
+ }
+
if (adjustments == null) {
if (other.adjustments != null) {
return false;
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestRefundJson.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestRefundJson.java
index d4dde15..f46c8a4 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestRefundJson.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestRefundJson.java
@@ -41,16 +41,18 @@ public class TestRefundJson extends JaxrsTestSuite {
final String refundId = UUID.randomUUID().toString();
final String paymentId = UUID.randomUUID().toString();
final BigDecimal refundAmount = BigDecimal.TEN;
+ final String currency = "USD";
final boolean isAdjusted = true;
final DateTime requestedDate = clock.getUTCNow();
final DateTime effectiveDate = clock.getUTCNow();
final List<InvoiceItemJsonSimple> adjustments = ImmutableList.<InvoiceItemJsonSimple>of(createInvoiceItemJson());
final List<AuditLogJson> auditLogs = createAuditLogsJson();
- final RefundJson refundJson = new RefundJson(refundId, paymentId, refundAmount, isAdjusted, requestedDate,
+ final RefundJson refundJson = new RefundJson(refundId, paymentId, refundAmount, currency, isAdjusted, requestedDate,
effectiveDate, adjustments, auditLogs);
Assert.assertEquals(refundJson.getRefundId(), refundId);
Assert.assertEquals(refundJson.getPaymentId(), paymentId);
Assert.assertEquals(refundJson.getRefundAmount(), refundAmount);
+ Assert.assertEquals(refundJson.getCurrency(), currency);
Assert.assertEquals(refundJson.isAdjusted(), isAdjusted);
Assert.assertEquals(refundJson.getRequestedDate(), requestedDate);
Assert.assertEquals(refundJson.getEffectiveDate(), effectiveDate);
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
index 01d4f46..6e44e26 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -132,6 +132,8 @@ public class TestJaxrsBase extends ServerTestSuiteWithEmbeddedDB {
public static final String HEADER_CONTENT_TYPE = "Content-type";
public static final String CONTENT_TYPE = "application/json";
+ protected static final String DEFAULT_CURRENCY = "USD";
+
private static TestKillbillGuiceListener listener;
private final MysqlTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getMysqlTestingHelper();
@@ -819,7 +821,7 @@ public class TestJaxrsBase extends ServerTestSuiteWithEmbeddedDB {
adjustments.add(new InvoiceItemJsonSimple(itemId, null, null, null, null, null, null, null, null, null,
itemAdjustments.get(itemId), null, null));
}
- final RefundJson refundJson = new RefundJson(null, paymentId, amount, adjusted, null, null, adjustments, null);
+ final RefundJson refundJson = new RefundJson(null, paymentId, amount, DEFAULT_CURRENCY, adjusted, null, null, adjustments, null);
final String baseJson = mapper.writeValueAsString(refundJson);
final Response response = doPost(uri, baseJson, DEFAULT_EMPTY_QUERY, DEFAULT_HTTP_TIMEOUT_SEC);
assertEquals(response.getStatusCode(), Status.CREATED.getStatusCode());
@@ -975,7 +977,7 @@ public class TestJaxrsBase extends ServerTestSuiteWithEmbeddedDB {
final int length = 4;
// Let junction figure it out
final BillCycleDayJson billCycleDay = null;
- final String currency = "USD";
+ final String currency = DEFAULT_CURRENCY;
final String timeZone = "UTC";
final String address1 = "12 rue des ecoles";
final String address2 = "Poitier";
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java b/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java
index 14c4ae9..d207d48 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java
@@ -170,6 +170,7 @@ public class TestPayment extends TestJaxrsBase {
private void verifyRefund(final PaymentJsonSimple paymentJsonSimple, final RefundJson refundJsonCheck, final BigDecimal refundAmount) throws IOException {
Assert.assertEquals(refundJsonCheck.getPaymentId(), paymentJsonSimple.getPaymentId());
Assert.assertEquals(refundJsonCheck.getRefundAmount().setScale(2, RoundingMode.HALF_UP), refundAmount.setScale(2, RoundingMode.HALF_UP));
+ Assert.assertEquals(refundJsonCheck.getCurrency(), DEFAULT_CURRENCY);
Assert.assertEquals(refundJsonCheck.getEffectiveDate().getYear(), clock.getUTCNow().getYear());
Assert.assertEquals(refundJsonCheck.getEffectiveDate().getMonthOfYear(), clock.getUTCNow().getMonthOfYear());
Assert.assertEquals(refundJsonCheck.getEffectiveDate().getDayOfMonth(), clock.getUTCNow().getDayOfMonth());