killbill-uncached

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