killbill-aplcache

Details

diff --git a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestAccountJson.java b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestAccountJson.java
index f70b83d..bddef30 100644
--- a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestAccountJson.java
+++ b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestAccountJson.java
@@ -51,9 +51,10 @@ public class TestAccountJson extends JaxrsTestSuiteNoDB {
         final String phone = UUID.randomUUID().toString();
         final Boolean isMigrated = true;
         final Boolean isNotifiedForInvoice = false;
+        final String parentAccountId = UUID.randomUUID().toString();
 
         final AccountJson accountJson = new AccountJson(accountId, name, length, externalKey,
-                                                        email, billCycleDayLocal, currency, null, false, paymentMethodId,
+                                                        email, billCycleDayLocal, currency, parentAccountId, true, paymentMethodId,
                                                         timeZone, address1, address2, postalCode, company, city, state,
                                                         country, locale, phone, isMigrated, isNotifiedForInvoice, null, null, null);
         Assert.assertEquals(accountJson.getAccountId(), accountId);
@@ -76,6 +77,8 @@ public class TestAccountJson extends JaxrsTestSuiteNoDB {
         Assert.assertEquals(accountJson.getPhone(), phone);
         Assert.assertEquals(accountJson.isMigrated(), isMigrated);
         Assert.assertEquals(accountJson.isNotifiedForInvoices(), isNotifiedForInvoice);
+        Assert.assertEquals(accountJson.getParentAccountId(), parentAccountId);
+        Assert.assertEquals(accountJson.isPaymentDelegatedToParent(), Boolean.TRUE);
 
         final String asJson = mapper.writeValueAsString(accountJson);
         final AccountJson fromJson = mapper.readValue(asJson, AccountJson.class);
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
index 5b498cf..e61057a 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
@@ -173,7 +173,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         final String phone = "81 53 26 56";
 
         // Note: the accountId payload is ignored on account creation
-        return new Account(accountId, name, length, externalKey, email, null, currency, null, false, null, timeZone,
+        return new Account(accountId, name, length, externalKey, email, null, currency, null, null, null, timeZone,
                            address1, address2, postalCode, company, city, state, country, locale, phone, false, false, null, null);
     }
 
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestAccount.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestAccount.java
index ba8b068..03851d5 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestAccount.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestAccount.java
@@ -371,4 +371,23 @@ public class TestAccount extends TestJaxrsBase {
             Assert.assertEquals(accountsByKey.get(0), output);
         }
     }
-}
+
+    @Test(groups = "slow", description = "Can create and retrieve parent/children accounts")
+    public void testParentAccountOk() throws Exception {
+
+        final Account parentAccount = createAccount();
+
+        final Account childInput = getAccount();
+        childInput.setParentAccountId(parentAccount.getAccountId());
+        childInput.setIsPaymentDelegatedToParent(true);
+        final Account childAccount = killBillClient.createAccount(childInput, createdBy, reason, comment);
+
+        // Retrieves child account by external key
+        final Account retrievedAccount = killBillClient.getAccount(childAccount.getExternalKey());
+        Assert.assertTrue(retrievedAccount.equals(childAccount));
+        Assert.assertEquals(retrievedAccount.getParentAccountId(), parentAccount.getAccountId());
+        Assert.assertTrue(retrievedAccount.getIsPaymentDelegatedToParent());
+
+    }
+
+}
\ No newline at end of file