killbill-uncached

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 bf09acf..a4151b1 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
@@ -32,6 +32,7 @@ public class InvoiceItemJsonSimple extends JsonBase {
 
     private final String invoiceItemId;
     private final String invoiceId;
+    private final String linkedInvoiceItemId;
     private final String accountId;
     private final String bundleId;
     private final String subscriptionId;
@@ -45,6 +46,7 @@ public class InvoiceItemJsonSimple extends JsonBase {
 
     public InvoiceItemJsonSimple(@JsonProperty("invoiceItemId") final String invoiceItemId,
                                  @JsonProperty("invoiceId") final String invoiceId,
+                                 @JsonProperty("linkedInvoiceItemId") final String linkedInvoiceItemId,
                                  @JsonProperty("accountId") final String accountId,
                                  @JsonProperty("bundleId") final String bundleId,
                                  @JsonProperty("subscriptionId") final String subscriptionId,
@@ -59,6 +61,7 @@ public class InvoiceItemJsonSimple extends JsonBase {
         super(auditLogs);
         this.invoiceItemId = invoiceItemId;
         this.invoiceId = invoiceId;
+        this.linkedInvoiceItemId = linkedInvoiceItemId;
         this.accountId = accountId;
         this.bundleId = bundleId;
         this.subscriptionId = subscriptionId;
@@ -72,8 +75,8 @@ public class InvoiceItemJsonSimple extends JsonBase {
     }
 
     public InvoiceItemJsonSimple(final InvoiceItem item) {
-        this(toString(item.getId()), toString(item.getInvoiceId()), toString(item.getAccountId()),
-             toString(item.getBundleId()), toString(item.getSubscriptionId()),
+        this(toString(item.getId()), toString(item.getInvoiceId()), toString(item.getLinkedItemId()),
+             toString(item.getAccountId()), toString(item.getBundleId()), toString(item.getSubscriptionId()),
              item.getPlanName(), item.getPhaseName(), item.getDescription(), item.getStartDate(), item.getEndDate(),
              item.getAmount(), item.getCurrency(), null);
     }
@@ -86,6 +89,10 @@ public class InvoiceItemJsonSimple extends JsonBase {
         return invoiceId;
     }
 
+    public String getLinkedInvoiceItemId() {
+        return linkedInvoiceItemId;
+    }
+
     public String getAccountId() {
         return accountId;
     }
@@ -127,6 +134,27 @@ public class InvoiceItemJsonSimple extends JsonBase {
     }
 
     @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder();
+        sb.append("InvoiceItemJsonSimple");
+        sb.append("{invoiceItemId='").append(invoiceItemId).append('\'');
+        sb.append(", invoiceId='").append(invoiceId).append('\'');
+        sb.append(", linkedInvoiceItemId='").append(linkedInvoiceItemId).append('\'');
+        sb.append(", accountId='").append(accountId).append('\'');
+        sb.append(", bundleId='").append(bundleId).append('\'');
+        sb.append(", subscriptionId='").append(subscriptionId).append('\'');
+        sb.append(", planName='").append(planName).append('\'');
+        sb.append(", phaseName='").append(phaseName).append('\'');
+        sb.append(", description='").append(description).append('\'');
+        sb.append(", startDate=").append(startDate);
+        sb.append(", endDate=").append(endDate);
+        sb.append(", amount=").append(amount);
+        sb.append(", currency=").append(currency);
+        sb.append('}');
+        return sb.toString();
+    }
+
+    @Override
     public boolean equals(final Object o) {
         if (this == o) {
             return true;
@@ -163,6 +191,9 @@ public class InvoiceItemJsonSimple extends JsonBase {
         if (invoiceId != null ? !invoiceId.equals(that.invoiceId) : that.invoiceId != null) {
             return false;
         }
+        if (linkedInvoiceItemId != null ? !linkedInvoiceItemId.equals(that.linkedInvoiceItemId) : that.linkedInvoiceItemId != null) {
+            return false;
+        }
         if (phaseName != null ? !phaseName.equals(that.phaseName) : that.phaseName != null) {
             return false;
         }
@@ -184,6 +215,7 @@ public class InvoiceItemJsonSimple extends JsonBase {
     public int hashCode() {
         int result = invoiceId != null ? invoiceId.hashCode() : 0;
         result = 31 * result + (invoiceItemId != null ? invoiceItemId.hashCode() : 0);
+        result = 31 * result + (linkedInvoiceItemId != null ? linkedInvoiceItemId.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/main/java/com/ning/billing/jaxrs/json/RefundJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/RefundJson.java
index ae23edf..3a52b58 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
@@ -37,7 +37,7 @@ public class RefundJson extends JsonBase {
 
     private final String refundId;
     private final String paymentId;
-    private final BigDecimal refundAmount;
+    private final BigDecimal amount;
     private final String currency;
     private final Boolean isAdjusted;
     private final DateTime requestedDate;
@@ -45,9 +45,9 @@ public class RefundJson extends JsonBase {
     private final List<InvoiceItemJsonSimple> adjustments;
 
     @JsonCreator
-    public RefundJson(@JsonProperty("refund_id") final String refundId,
+    public RefundJson(@JsonProperty("refundId") final String refundId,
                       @JsonProperty("paymentId") final String paymentId,
-                      @JsonProperty("refundAmount") final BigDecimal refundAmount,
+                      @JsonProperty("amount") final BigDecimal amount,
                       @JsonProperty("currency") final String currency,
                       @JsonProperty("adjusted") final Boolean isAdjusted,
                       @JsonProperty("requestedDate") final DateTime requestedDate,
@@ -57,7 +57,7 @@ public class RefundJson extends JsonBase {
         super(auditLogs);
         this.refundId = refundId;
         this.paymentId = paymentId;
-        this.refundAmount = refundAmount;
+        this.amount = amount;
         this.currency = currency;
         this.isAdjusted = isAdjusted;
         this.requestedDate = requestedDate;
@@ -85,8 +85,8 @@ public class RefundJson extends JsonBase {
         return paymentId;
     }
 
-    public BigDecimal getRefundAmount() {
-        return refundAmount;
+    public BigDecimal getAmount() {
+        return amount;
     }
 
     public String getCurrency() {
@@ -115,7 +115,7 @@ public class RefundJson extends JsonBase {
         sb.append("RefundJson");
         sb.append("{refundId='").append(refundId).append('\'');
         sb.append(", paymentId='").append(paymentId).append('\'');
-        sb.append(", refundAmount=").append(refundAmount);
+        sb.append(", amount=").append(amount);
         sb.append(", currency=").append(currency);
         sb.append(", isAdjusted=").append(isAdjusted);
         sb.append(", requestedDate=").append(requestedDate);
@@ -129,7 +129,7 @@ public class RefundJson extends JsonBase {
     public int hashCode() {
         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 + (amount != null ? amount.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);
@@ -202,11 +202,11 @@ public class RefundJson extends JsonBase {
             return false;
         }
 
-        if (refundAmount == null) {
-            if (other.refundAmount != null) {
+        if (amount == null) {
+            if (other.amount != null) {
                 return false;
             }
-        } else if (!refundAmount.equals(other.refundAmount)) {
+        } else if (!amount.equals(other.amount)) {
             return false;
         }
 
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PaymentResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PaymentResource.java
index e2ce6f4..24f6bc2 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PaymentResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PaymentResource.java
@@ -125,11 +125,11 @@ public class PaymentResource extends JaxRsResourceBase {
                 result = paymentApi.createRefundWithItemsAdjustments(account, paymentUuid, adjustments, context.createContext(createdBy, reason, comment));
             } else {
                 // Invoice adjustment
-                result = paymentApi.createRefundWithAdjustment(account, paymentUuid, json.getRefundAmount(), context.createContext(createdBy, reason, comment));
+                result = paymentApi.createRefundWithAdjustment(account, paymentUuid, json.getAmount(), context.createContext(createdBy, reason, comment));
             }
         } else {
             // Refund without adjustment
-            result = paymentApi.createRefund(account, paymentUuid, json.getRefundAmount(), context.createContext(createdBy, reason, comment));
+            result = paymentApi.createRefund(account, paymentUuid, json.getAmount(), context.createContext(createdBy, reason, comment));
         }
 
         return uriBuilder.buildResponse(RefundResource.class, "getRefund", result.getId(), uriInfo.getBaseUri().toString());
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 a182119..09808ac 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
@@ -39,6 +39,7 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
     public void testJson() throws Exception {
         final String invoiceItemId = UUID.randomUUID().toString();
         final String invoiceId = UUID.randomUUID().toString();
+        final String linkedInvoiceItemId = UUID.randomUUID().toString();
         final String accountId = UUID.randomUUID().toString();
         final String bundleId = UUID.randomUUID().toString();
         final String subscriptionId = UUID.randomUUID().toString();
@@ -50,11 +51,12 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
         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, auditLogs);
+        final InvoiceItemJsonSimple invoiceItemJsonSimple = new InvoiceItemJsonSimple(invoiceItemId, invoiceId, linkedInvoiceItemId, accountId,
+                                                                                      bundleId, subscriptionId, planName, phaseName, description,
+                                                                                      startDate, endDate, amount, currency, auditLogs);
         Assert.assertEquals(invoiceItemJsonSimple.getInvoiceItemId(), invoiceItemId);
         Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceId);
+        Assert.assertEquals(invoiceItemJsonSimple.getLinkedInvoiceItemId(), linkedInvoiceItemId);
         Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), accountId);
         Assert.assertEquals(invoiceItemJsonSimple.getBundleId(), bundleId);
         Assert.assertEquals(invoiceItemJsonSimple.getSubscriptionId(), subscriptionId);
@@ -77,6 +79,7 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
         final InvoiceItem invoiceItem = Mockito.mock(InvoiceItem.class);
         Mockito.when(invoiceItem.getId()).thenReturn(UUID.randomUUID());
         Mockito.when(invoiceItem.getInvoiceId()).thenReturn(UUID.randomUUID());
+        Mockito.when(invoiceItem.getLinkedItemId()).thenReturn(UUID.randomUUID());
         Mockito.when(invoiceItem.getAccountId()).thenReturn(UUID.randomUUID());
         Mockito.when(invoiceItem.getBundleId()).thenReturn(UUID.randomUUID());
         Mockito.when(invoiceItem.getSubscriptionId()).thenReturn(UUID.randomUUID());
@@ -91,6 +94,7 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuite {
         final InvoiceItemJsonSimple invoiceItemJsonSimple = new InvoiceItemJsonSimple(invoiceItem);
         Assert.assertEquals(invoiceItemJsonSimple.getInvoiceItemId(), invoiceItem.getId().toString());
         Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceItem.getInvoiceId().toString());
+        Assert.assertEquals(invoiceItemJsonSimple.getLinkedInvoiceItemId(), invoiceItem.getLinkedItemId().toString());
         Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), invoiceItem.getAccountId().toString());
         Assert.assertEquals(invoiceItemJsonSimple.getBundleId(), invoiceItem.getBundleId().toString());
         Assert.assertEquals(invoiceItemJsonSimple.getSubscriptionId(), invoiceItem.getSubscriptionId().toString());
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 1b310f6..990cdea 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
@@ -100,6 +100,7 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuite {
 
         final InvoiceItemJsonSimple invoiceItemJsonSimple = invoiceJsonWithItems.getItems().get(0);
         Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceItem.getInvoiceId().toString());
+        Assert.assertEquals(invoiceItemJsonSimple.getLinkedInvoiceItemId(), invoiceItem.getLinkedItemId().toString());
         Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), invoiceItem.getAccountId().toString());
         Assert.assertEquals(invoiceItemJsonSimple.getBundleId(), invoiceItem.getBundleId().toString());
         Assert.assertEquals(invoiceItemJsonSimple.getSubscriptionId(), invoiceItem.getSubscriptionId().toString());
@@ -115,6 +116,7 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuite {
     private InvoiceItemJsonSimple createInvoiceItemJson() {
         final String invoiceItemId = UUID.randomUUID().toString();
         final String invoiceId = UUID.randomUUID().toString();
+        final String linkedInvoiceItemId = UUID.randomUUID().toString();
         final String accountId = UUID.randomUUID().toString();
         final String bundleId = UUID.randomUUID().toString();
         final String subscriptionId = UUID.randomUUID().toString();
@@ -125,7 +127,7 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuite {
         final LocalDate endDate = clock.getUTCToday();
         final BigDecimal amount = BigDecimal.TEN;
         final Currency currency = Currency.MXN;
-        return new InvoiceItemJsonSimple(invoiceItemId, invoiceId, accountId, bundleId, subscriptionId,
+        return new InvoiceItemJsonSimple(invoiceItemId, invoiceId, linkedInvoiceItemId, accountId, bundleId, subscriptionId,
                                          planName, phaseName, description, startDate, endDate,
                                          amount, currency, null);
     }
@@ -133,6 +135,7 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuite {
     private InvoiceItem createInvoiceItem() {
         final InvoiceItem invoiceItem = Mockito.mock(InvoiceItem.class);
         Mockito.when(invoiceItem.getInvoiceId()).thenReturn(UUID.randomUUID());
+        Mockito.when(invoiceItem.getLinkedItemId()).thenReturn(UUID.randomUUID());
         Mockito.when(invoiceItem.getAccountId()).thenReturn(UUID.randomUUID());
         Mockito.when(invoiceItem.getBundleId()).thenReturn(UUID.randomUUID());
         Mockito.when(invoiceItem.getSubscriptionId()).thenReturn(UUID.randomUUID());
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 f46c8a4..bbb9b76 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
@@ -40,18 +40,18 @@ public class TestRefundJson extends JaxrsTestSuite {
     public void testJson() throws Exception {
         final String refundId = UUID.randomUUID().toString();
         final String paymentId = UUID.randomUUID().toString();
-        final BigDecimal refundAmount = BigDecimal.TEN;
+        final BigDecimal amount = 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, currency, isAdjusted, requestedDate,
+        final RefundJson refundJson = new RefundJson(refundId, paymentId, amount, currency, isAdjusted, requestedDate,
                                                      effectiveDate, adjustments, auditLogs);
         Assert.assertEquals(refundJson.getRefundId(), refundId);
         Assert.assertEquals(refundJson.getPaymentId(), paymentId);
-        Assert.assertEquals(refundJson.getRefundAmount(), refundAmount);
+        Assert.assertEquals(refundJson.getAmount(), amount);
         Assert.assertEquals(refundJson.getCurrency(), currency);
         Assert.assertEquals(refundJson.isAdjusted(), isAdjusted);
         Assert.assertEquals(refundJson.getRequestedDate(), requestedDate);
@@ -67,6 +67,7 @@ public class TestRefundJson extends JaxrsTestSuite {
     private InvoiceItemJsonSimple createInvoiceItemJson() {
         final String invoiceItemId = UUID.randomUUID().toString();
         final String invoiceId = UUID.randomUUID().toString();
+        final String linkedInvoiceItemId = UUID.randomUUID().toString();
         final String accountId = UUID.randomUUID().toString();
         final String bundleId = UUID.randomUUID().toString();
         final String subscriptionId = UUID.randomUUID().toString();
@@ -78,7 +79,7 @@ public class TestRefundJson extends JaxrsTestSuite {
         final BigDecimal amount = BigDecimal.TEN;
         final Currency currency = Currency.MXN;
         final List<AuditLogJson> auditLogs = createAuditLogsJson();
-        return new InvoiceItemJsonSimple(invoiceItemId, invoiceId, accountId, bundleId, subscriptionId,
+        return new InvoiceItemJsonSimple(invoiceItemId, invoiceId, linkedInvoiceItemId, accountId, bundleId, subscriptionId,
                                          planName, phaseName, description, startDate, endDate,
                                          amount, currency, auditLogs);
     }
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java b/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java
index 27b0dab..5bfea52 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java
@@ -105,7 +105,7 @@ public class TestAccountTimeline extends TestJaxrsBase {
             Assert.assertEquals(paymentJson.getRefunds().size(), 1);
             final RefundJson refundJson = paymentJson.getRefunds().get(0);
             Assert.assertEquals(refundJson.getPaymentId(), paymentJson.getPaymentId());
-            Assert.assertEquals(refundJson.getRefundAmount().compareTo(refundAmount), 0);
+            Assert.assertEquals(refundJson.getAmount().compareTo(refundAmount), 0);
 
             // Verify chargebacks
             Assert.assertEquals(paymentJson.getChargebacks().size(), 1);
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 6e44e26..54149d7 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -23,10 +23,12 @@ import java.net.URL;
 import java.util.ArrayList;
 import java.util.EventListener;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
@@ -78,7 +80,6 @@ import com.ning.billing.jaxrs.json.PaymentMethodJson.PaymentMethodPluginDetailJs
 import com.ning.billing.jaxrs.json.PaymentMethodJson.PaymentMethodProperties;
 import com.ning.billing.jaxrs.json.RefundJson;
 import com.ning.billing.jaxrs.json.SubscriptionJsonNoEvents;
-import com.ning.billing.jaxrs.resources.AccountResource;
 import com.ning.billing.jaxrs.resources.JaxrsResource;
 import com.ning.billing.junction.glue.DefaultJunctionModule;
 import com.ning.billing.payment.glue.PaymentModule;
@@ -111,6 +112,8 @@ import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
 import com.fasterxml.jackson.datatype.joda.JodaModule;
+import com.google.common.base.Function;
+import com.google.common.collect.Collections2;
 import com.google.common.collect.ImmutableMap;
 import com.google.inject.Module;
 
@@ -626,7 +629,7 @@ public class TestJaxrsBase extends ServerTestSuiteWithEmbeddedDB {
             queryParams.put(JaxrsResource.QUERY_REQUESTED_DT, requestedDate.toDateTimeISO().toString());
         }
 
-        final InvoiceItemJsonSimple adjustment = new InvoiceItemJsonSimple(invoiceItemId, null, accountId, null, null, null, null,
+        final InvoiceItemJsonSimple adjustment = new InvoiceItemJsonSimple(invoiceItemId, null, null, accountId, null, null, null, null,
                                                                            null, null, null, amount, currency, null);
         final String adjustmentJson = mapper.writeValueAsString(adjustment);
         final Response response = doPost(uri, adjustmentJson, queryParams, DEFAULT_HTTP_TIMEOUT_SEC);
@@ -651,7 +654,7 @@ public class TestJaxrsBase extends ServerTestSuiteWithEmbeddedDB {
             queryParams.put(JaxrsResource.QUERY_REQUESTED_DT, requestedDate.toDateTimeISO().toString());
         }
 
-        final InvoiceItemJsonSimple externalCharge = new InvoiceItemJsonSimple(null, invoiceId, accountId, bundleId, null, null, null,
+        final InvoiceItemJsonSimple externalCharge = new InvoiceItemJsonSimple(null, invoiceId, null, accountId, bundleId, null, null, null,
                                                                                null, null, null, amount, currency, null);
         final String externalChargeJson = mapper.writeValueAsString(externalCharge);
         final Response response = doPost(uri, externalChargeJson, queryParams, DEFAULT_HTTP_TIMEOUT_SEC);
@@ -667,7 +670,7 @@ public class TestJaxrsBase extends ServerTestSuiteWithEmbeddedDB {
         assertEquals(invoiceResponse.getStatusCode(), Status.OK.getStatusCode());
 
         final String invoicesBaseJson = invoiceResponse.getResponseBody();
-        final InvoiceJsonWithItems invoice = mapper.readValue(invoicesBaseJson, new TypeReference<InvoiceJsonWithItems>(){});
+        final InvoiceJsonWithItems invoice = mapper.readValue(invoicesBaseJson, new TypeReference<InvoiceJsonWithItems>() {});
         assertNotNull(invoice);
 
         return invoice;
@@ -818,7 +821,7 @@ public class TestJaxrsBase extends ServerTestSuiteWithEmbeddedDB {
 
         final List<InvoiceItemJsonSimple> adjustments = new ArrayList<InvoiceItemJsonSimple>();
         for (final String itemId : itemAdjustments.keySet()) {
-            adjustments.add(new InvoiceItemJsonSimple(itemId, null, null, null, null, null, null, null, null, null,
+            adjustments.add(new InvoiceItemJsonSimple(itemId, null, null, null, null, null, null, null, null, null, null,
                                                       itemAdjustments.get(itemId), null, null));
         }
         final RefundJson refundJson = new RefundJson(null, paymentId, amount, DEFAULT_CURRENCY, adjusted, null, null, adjustments, null);
@@ -835,6 +838,20 @@ public class TestJaxrsBase extends ServerTestSuiteWithEmbeddedDB {
         final String retrievedBaseJson = retrievedResponse.getResponseBody();
         final RefundJson retrievedRefundJson = mapper.readValue(retrievedBaseJson, RefundJson.class);
         assertNotNull(retrievedRefundJson);
+        // Verify we have the adjusted items
+        if (retrievedRefundJson.getAdjustments() != null) {
+            final Set<String> allLinkedItemIds = new HashSet<String>(Collections2.transform(retrievedRefundJson.getAdjustments(), new Function<InvoiceItemJsonSimple, String>() {
+                @Override
+                public String apply(@Nullable final InvoiceItemJsonSimple input) {
+                    if (input != null) {
+                        return input.getLinkedInvoiceItemId();
+                    } else {
+                        return null;
+                    }
+                }
+            }));
+            assertEquals(allLinkedItemIds, itemAdjustments.keySet());
+        }
 
         return retrievedRefundJson;
     }
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 d207d48..a95ac00 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java
@@ -169,7 +169,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.getAmount().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());