diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
index 86520aa..f164cef 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
@@ -76,15 +76,15 @@ public class TestEntitlement extends TestJaxrsBase {
ProductCategory.BASE, term, true);
// Retrieves with GET
- Subscription objFromJson = subscriptionApi.getSubscription(entitlementJson.getSubscriptionId(), requestOptions);
- Assert.assertEquals(objFromJson.getPrices().size(), 2);
- Assert.assertEquals(objFromJson.getPrices().get(0).getFixedPrice(), BigDecimal.ZERO);
- Assert.assertNull(objFromJson.getPrices().get(0).getRecurringPrice());
+ Subscription subscription = subscriptionApi.getSubscription(entitlementJson.getSubscriptionId(), requestOptions);
+ Assert.assertEquals(subscription.getPrices().size(), 2);
+ Assert.assertEquals(subscription.getPrices().get(0).getFixedPrice(), BigDecimal.ZERO);
+ Assert.assertNull(subscription.getPrices().get(0).getRecurringPrice());
- Assert.assertNull(objFromJson.getPrices().get(1).getFixedPrice());
- Assert.assertEquals(objFromJson.getPrices().get(1).getRecurringPrice(), new BigDecimal("249.95"));
+ Assert.assertNull(subscription.getPrices().get(1).getFixedPrice());
+ Assert.assertEquals(subscription.getPrices().get(1).getRecurringPrice(), new BigDecimal("249.95"));
- Assert.assertTrue(objFromJson.equals(entitlementJson));
+ Assert.assertTrue(subscription.equals(entitlementJson));
// Change the clock otherwise the CREATE event might be replaced (instead of having a CHANGE event)
clock.addDays(1);
@@ -103,7 +103,7 @@ public class TestEntitlement extends TestJaxrsBase {
callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_CHANGE, ExtBusEventType.SUBSCRIPTION_CHANGE, ExtBusEventType.INVOICE_CREATION);
subscriptionApi.changeSubscriptionPlan(entitlementJson.getSubscriptionId(), newInput, null, null, NULL_PLUGIN_PROPERTIES, requestOptions);
callbackServlet.assertListenerStatus();
- Assert.assertNotNull(objFromJson);
+ Assert.assertNotNull(subscription);
// MOVE AFTER TRIAL
callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_PHASE,
@@ -117,9 +117,25 @@ public class TestEntitlement extends TestJaxrsBase {
subscriptionApi.cancelSubscriptionPlan(newInput.getSubscriptionId(), null, null, null, NULL_PLUGIN_PROPERTIES, requestOptions);
// Retrieves to check EndDate
- objFromJson = subscriptionApi.getSubscription(entitlementJson.getSubscriptionId(), requestOptions);
- assertNotNull(objFromJson.getCancelledDate());
- assertTrue(objFromJson.getCancelledDate().compareTo(new LocalDate(clock.getUTCNow())) == 0);
+ subscription = subscriptionApi.getSubscription(entitlementJson.getSubscriptionId(), requestOptions);
+ assertNotNull(subscription.getCancelledDate());
+ assertTrue(subscription.getCancelledDate().compareTo(new LocalDate(clock.getUTCNow())) == 0);
+
+
+ final Bundles accountBundles = accountApi.getAccountBundles(accountJson.getAccountId(), null, null, requestOptions);
+ assertEquals(accountBundles.size(), 1);
+ assertEquals(accountBundles.get(0).getSubscriptions().size(), 1);
+ assertEquals(accountBundles.get(0).getSubscriptions().get(0).getState(), EntitlementState.CANCELLED);
+
+ final Bundles bundlesByKey1 = bundleApi.getBundleByKey(entitlementJson.getExternalKey(), true, AuditLevel.NONE, requestOptions);
+ assertEquals(bundlesByKey1.size(), 1);
+ assertEquals(bundlesByKey1.get(0).getSubscriptions().size(), 1);
+ assertEquals(bundlesByKey1.get(0).getSubscriptions().get(0).getState(), EntitlementState.CANCELLED);
+
+ final Bundles bundlesByKey2 = bundleApi.getBundleByKey(entitlementJson.getExternalKey(), requestOptions);
+ assertNotNull(bundlesByKey2);
+ assertEquals(bundlesByKey2.size(), 0);
+
}
@Test(groups = "slow", description = "Can cancel and uncancel a subscription")
diff --git a/util/src/main/java/org/killbill/billing/util/jackson/ObjectMapper.java b/util/src/main/java/org/killbill/billing/util/jackson/ObjectMapper.java
index 4ff3026..24dbea6 100644
--- a/util/src/main/java/org/killbill/billing/util/jackson/ObjectMapper.java
+++ b/util/src/main/java/org/killbill/billing/util/jackson/ObjectMapper.java
@@ -18,6 +18,7 @@
package org.killbill.billing.util.jackson;
+import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.dataformat.smile.SmileFactory;
import com.fasterxml.jackson.datatype.joda.JodaModule;
@@ -28,6 +29,7 @@ public class ObjectMapper extends com.fasterxml.jackson.databind.ObjectMapper {
super(f);
this.registerModule(new JodaModule());
this.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
+ this.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
}
public ObjectMapper() {