@Override public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; final AbstractSubscription that = (AbstractSubscription) o; if (addOns != null ? !addOns.equals(that.addOns) : that.addOns != null) { return false; } if (planCode != null ? !planCode.equals(that.planCode) : that.planCode != null) { return false; } if (quantity != null ? !quantity.equals(that.quantity) : that.quantity != null) { return false; } if (unitAmountInCents != null ? !unitAmountInCents.equals(that.unitAmountInCents) : that.unitAmountInCents != null) { return false; } return true; }
private void verifySubscriptionAddons(final Subscription subscription) { Assert.assertEquals(subscription.getAddOns().size(), 2); Assert.assertEquals(subscription.getAddOns().get(0).getAddOnCode(), "extra_users"); Assert.assertEquals(subscription.getAddOns().get(0).getQuantity(), (Integer) 2); Assert.assertEquals(subscription.getAddOns().get(0).getUnitAmountInCents(), (Integer) 1000); Assert.assertEquals(subscription.getAddOns().get(1).getAddOnCode(), "extra_ip"); Assert.assertEquals(subscription.getAddOns().get(1).getQuantity(), (Integer) 3); Assert.assertEquals(subscription.getAddOns().get(1).getUnitAmountInCents(), (Integer) 200); }
@JsonIgnore @Override public SubscriptionAddOns getNext() { return getNext(SubscriptionAddOns.class); } }
Assert.assertEquals(subscriptionWithAddons.getAddOns().size(), nbAddOns); for (int i = 0; i < nbAddOns; i++) { Assert.assertEquals(subscriptionWithAddons.getAddOns().get(i).getAddOnCode(), addons.get(i).getAddOnCode()); subscriptionUpdate.setAddOns(new SubscriptionAddOns()); final Subscription subscriptionWithAddons1 = recurlyClient.updateSubscription(subscriptionWithAddons.getUuid(), subscriptionUpdate); Assert.assertTrue(subscriptionWithAddons1.getAddOns().isEmpty()); final SubscriptionAddOns newAddons = new SubscriptionAddOns(); newAddons.addAll(subscriptionDataWithAddons.getAddOns()); subscriptionUpdate1.setAddOns(newAddons); final Subscription subscriptionWithAddons2 = recurlyClient.updateSubscription(subscriptionWithAddons.getUuid(), subscriptionUpdate1); Assert.assertEquals(subscriptionWithAddons2.getAddOns().size(), nbAddOns); for (int i = 0; i < nbAddOns; i++) { Assert.assertEquals(subscriptionWithAddons2.getAddOns().get(i).getAddOnCode(), addons.get(i).getAddOnCode());
@Test(groups = "fast") public void testSerializationWithAddOns() throws Exception { final SubscriptionUpdate subscription = new SubscriptionUpdate(); subscription.setPlanCode("gold"); subscription.setTimeframe(SubscriptionUpdate.Timeframe.now); subscription.setUnitAmountInCents(800); subscription.setQuantity(1); final SubscriptionAddOns addOns = new SubscriptionAddOns(); final SubscriptionAddOn addOn = new SubscriptionAddOn(); addOn.setAddOnCode("extra_users"); addOn.setQuantity(2); addOn.setUnitAmountInCents(1000); addOns.add(addOn); subscription.setAddOns(addOns); final String xml = xmlMapper.writeValueAsString(subscription); Assert.assertEquals(xml, "<subscription xmlns=\"\">" + "<timeframe>now</timeframe>" + "<unit_amount_in_cents>800</unit_amount_in_cents>" + "<quantity>1</quantity>" + "<subscription_add_ons>" + "<subscription_add_on>" + "<add_on_code>extra_users</add_on_code>" + "<unit_amount_in_cents>1000</unit_amount_in_cents>" + "<quantity>2</quantity>" + "</subscription_add_on>" + "</subscription_add_ons>" + "<plan_code>gold</plan_code>" + "</subscription>"); }
@Test(groups = "fast") public void testDeserialization() throws Exception { // See https://dev.recurly.com/docs/list-subscriptions final String subscriptionData = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<subscription>\n" + " <timeframe>now</timeframe>\n" + " <plan_code>gold</plan_code>\n" + " <unit_amount_in_cents type=\"integer\">800</unit_amount_in_cents>\n" + " <quantity type=\"integer\">1</quantity>\n" + " <subscription_add_ons type=\"array\">\n" + " </subscription_add_ons>\n" + "</subscription>"; final SubscriptionUpdate subscription = xmlMapper.readValue(subscriptionData, SubscriptionUpdate.class); Assert.assertEquals(subscription.getTimeframe(), SubscriptionUpdate.Timeframe.now); Assert.assertEquals(subscription.getPlanCode(), "gold"); Assert.assertEquals(subscription.getUnitAmountInCents(), (Integer) 800); Assert.assertEquals(subscription.getQuantity(), (Integer) 1); Assert.assertEquals(subscription.getAddOns().size(), 0); }
@Test(groups = "fast") public void testSerializationWithEmptyAddOns() throws Exception { final SubscriptionUpdate subscription = new SubscriptionUpdate(); subscription.setPlanCode("gold"); subscription.setTimeframe(SubscriptionUpdate.Timeframe.now); subscription.setUnitAmountInCents(800); subscription.setQuantity(1); subscription.setAddOns(new SubscriptionAddOns()); final String xml = xmlMapper.writeValueAsString(subscription); Assert.assertEquals(xml, "<subscription xmlns=\"\">" + "<timeframe>now</timeframe>" + "<unit_amount_in_cents>800</unit_amount_in_cents>" + "<quantity>1</quantity>" + "<subscription_add_ons></subscription_add_ons>" + "<plan_code>gold</plan_code>" + "</subscription>"); }
@JsonIgnore @Override public SubscriptionAddOns getStart() { return getStart(SubscriptionAddOns.class); }
Assert.assertEquals(subscriptionWithAddons.getAddOns().size(), nbAddOns); for (int i = 0; i < nbAddOns; i++) { Assert.assertEquals(subscriptionWithAddons.getAddOns().get(i).getAddOnCode(), addons.get(i).getAddOnCode()); subscriptionUpdate.setAddOns(new SubscriptionAddOns()); final Subscription subscriptionWithAddons1 = recurlyClient.updateSubscription(subscriptionWithAddons.getUuid(), subscriptionUpdate); Assert.assertTrue(subscriptionWithAddons1.getAddOns().isEmpty()); final SubscriptionAddOns newAddons = new SubscriptionAddOns(); newAddons.addAll(subscriptionDataWithAddons.getAddOns()); subscriptionUpdate1.setAddOns(newAddons); final Subscription subscriptionWithAddons2 = recurlyClient.updateSubscription(subscriptionWithAddons.getUuid(), subscriptionUpdate1); Assert.assertEquals(subscriptionWithAddons2.getAddOns().size(), nbAddOns); for (int i = 0; i < nbAddOns; i++) { Assert.assertEquals(subscriptionWithAddons2.getAddOns().get(i).getAddOnCode(), addons.get(i).getAddOnCode());
@Test(groups = "fast") public void testSerializationWithAddOns() throws Exception { final SubscriptionUpdate subscription = new SubscriptionUpdate(); subscription.setPlanCode("gold"); subscription.setTimeframe(SubscriptionUpdate.Timeframe.now); subscription.setUnitAmountInCents(800); subscription.setQuantity(1); final SubscriptionAddOns addOns = new SubscriptionAddOns(); final SubscriptionAddOn addOn = new SubscriptionAddOn(); addOn.setAddOnCode("extra_users"); addOn.setQuantity(2); addOn.setUnitAmountInCents(1000); addOns.add(addOn); subscription.setAddOns(addOns); final String xml = xmlMapper.writeValueAsString(subscription); Assert.assertEquals(xml, "<subscription xmlns=\"\">" + "<timeframe>now</timeframe>" + "<unit_amount_in_cents>800</unit_amount_in_cents>" + "<quantity>1</quantity>" + "<subscription_add_ons>" + "<subscription_add_on>" + "<add_on_code>extra_users</add_on_code>" + "<unit_amount_in_cents>1000</unit_amount_in_cents>" + "<quantity>2</quantity>" + "</subscription_add_on>" + "</subscription_add_ons>" + "<plan_code>gold</plan_code>" + "</subscription>"); }
private void verifyPendingSubscription(final Subscription subscription) { Subscription pending = subscription.getPendingSubscription(); Assert.assertEquals(pending.getPlan().getPlanCode(), "silver"); Assert.assertEquals(pending.getPlan().getName(), "Silver plan"); Assert.assertEquals(pending.getUnitAmountInCents(), (Integer) 400); Assert.assertEquals(pending.getQuantity(), (Integer) 1); Assert.assertEquals(pending.getAddOns().size(), 0); } }
@Test(groups = "fast") public void testSerializationWithEmptyAddOns() throws Exception { final SubscriptionUpdate subscription = new SubscriptionUpdate(); subscription.setPlanCode("gold"); subscription.setTimeframe(SubscriptionUpdate.Timeframe.now); subscription.setUnitAmountInCents(800); subscription.setQuantity(1); subscription.setAddOns(new SubscriptionAddOns()); final String xml = xmlMapper.writeValueAsString(subscription); Assert.assertEquals(xml, "<subscription xmlns=\"\">" + "<timeframe>now</timeframe>" + "<unit_amount_in_cents>800</unit_amount_in_cents>" + "<quantity>1</quantity>" + "<subscription_add_ons></subscription_add_ons>" + "<plan_code>gold</plan_code>" + "</subscription>"); }
/** * Creates a random {@link com.ning.billing.recurly.model.Subscription} object for use in tests * * @param currencyCode The currency code for which the subscription will be charged in * @param plan The associated plan * @param account The associated account * @param planAddOns AddOns for that subscription * @return The {@link com.ning.billing.recurly.model.Subscription} object */ public static Subscription createRandomSubscription(final String currencyCode, final Plan plan, final Account account, final Iterable<AddOn> planAddOns) { final Subscription sub = new Subscription(); // Make sure the quantity is > 0 sub.setQuantity(randomInteger(10) + 1); sub.setCurrency(randomCurrency()); sub.setPlanCode(plan.getPlanCode()); sub.setAccount(account); sub.setUnitAmountInCents(randomInteger(10)); sub.setCurrency(currencyCode); final SubscriptionAddOns addOns = new SubscriptionAddOns(); for (final AddOn addOn : planAddOns) { addOns.add(createRandomSubscriptionAddOn(addOn.getAddOnCode())); } sub.setAddOns(addOns); return sub; }
private void verifySubscriptionAddons(final Subscription subscription) { Assert.assertEquals(subscription.getAddOns().size(), 2); Assert.assertEquals(subscription.getAddOns().get(0).getAddOnCode(), "extra_users"); Assert.assertEquals(subscription.getAddOns().get(0).getQuantity(), (Integer) 2); Assert.assertEquals(subscription.getAddOns().get(0).getUnitAmountInCents(), (Integer) 1000); Assert.assertEquals(subscription.getAddOns().get(1).getAddOnCode(), "extra_ip"); Assert.assertEquals(subscription.getAddOns().get(1).getQuantity(), (Integer) 3); Assert.assertEquals(subscription.getAddOns().get(1).getUnitAmountInCents(), (Integer) 200); }
@Test(groups = "fast") public void testDeserialization() throws Exception { // See https://dev.recurly.com/docs/list-subscriptions final String subscriptionData = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<subscription>\n" + " <timeframe>now</timeframe>\n" + " <plan_code>gold</plan_code>\n" + " <unit_amount_in_cents type=\"integer\">800</unit_amount_in_cents>\n" + " <quantity type=\"integer\">1</quantity>\n" + " <subscription_add_ons type=\"array\">\n" + " </subscription_add_ons>\n" + "</subscription>"; final SubscriptionUpdate subscription = xmlMapper.readValue(subscriptionData, SubscriptionUpdate.class); Assert.assertEquals(subscription.getTimeframe(), SubscriptionUpdate.Timeframe.now); Assert.assertEquals(subscription.getPlanCode(), "gold"); Assert.assertEquals(subscription.getUnitAmountInCents(), (Integer) 800); Assert.assertEquals(subscription.getQuantity(), (Integer) 1); Assert.assertEquals(subscription.getAddOns().size(), 0); }
return false; if (addOns != null ? !addOns.equals(that.addOns) : that.addOns != null) { return false;
/** * Creates a random {@link com.ning.billing.recurly.model.Subscription} object for use in tests * * @param currencyCode The currency code for which the subscription will be charged in * @param plan The associated plan * @param account The associated account * @param planAddOns AddOns for that subscription * @return The {@link com.ning.billing.recurly.model.Subscription} object */ public static Subscription createRandomSubscription(final String currencyCode, final Plan plan, final Account account, final Iterable<AddOn> planAddOns) { final Subscription sub = new Subscription(); // Make sure the quantity is > 0 sub.setQuantity(randomInteger(10) + 1); sub.setCurrency(randomCurrency()); sub.setPlanCode(plan.getPlanCode()); sub.setAccount(account); sub.setUnitAmountInCents(randomInteger(10)); sub.setCurrency(currencyCode); final SubscriptionAddOns addOns = new SubscriptionAddOns(); for (final AddOn addOn : planAddOns) { addOns.add(createRandomSubscriptionAddOn(addOn.getAddOnCode())); } sub.setAddOns(addOns); return sub; }
private void verifyPendingSubscription(final Subscription subscription) { Subscription pending = subscription.getPendingSubscription(); Assert.assertEquals(pending.getPlan().getPlanCode(), "silver"); Assert.assertEquals(pending.getPlan().getName(), "Silver plan"); Assert.assertEquals(pending.getUnitAmountInCents(), (Integer) 400); Assert.assertEquals(pending.getQuantity(), (Integer) 1); Assert.assertEquals(pending.getAddOns().size(), 0); } }
/** * Creates a random {@link com.ning.billing.recurly.model.Subscription} object for use in tests given a seed * * @param seed The RNG seed * @return The {@link com.ning.billing.recurly.model.Subscription} object */ public static Subscription createRandomSubscription(final int seed) { final Subscription sub = new Subscription(); final Plan plan = createRandomPlan(seed); sub.setQuantity(randomInteger(10, seed) + 1); sub.setCurrency(randomCurrency(seed)); sub.setPlanCode(plan.getPlanCode()); sub.setAccount(createRandomAccount(seed)); sub.setUnitAmountInCents(randomInteger(10, seed)); sub.setCurrency(randomCurrency(seed)); final SubscriptionAddOns addOns = new SubscriptionAddOns(); for (int i = 0; i < 5; i++) { addOns.add(createRandomSubscriptionAddOn("code"+i)); } sub.setAddOns(addOns); return sub; }
verifyPaginationData(subscription); verifyPendingSubscription(subscription); Assert.assertEquals(subscription.getAddOns().size(), 0);