/** * Update a Plan's info * <p> * * @param plan The plan to update on recurly * @return the updated plan object */ public Plan updatePlan(final Plan plan) { return doPUT(Plan.PLANS_RESOURCE + "/" + plan.getPlanCode(), plan, Plan.class); }
private void verifySubscriptions(final Subscriptions subscriptions) { Assert.assertEquals(subscriptions.size(), 1); final Subscription subscription = subscriptions.get(0); Assert.assertEquals(subscription.getUuid(), "44f83d7cba354d5b84812419f923ea96"); Assert.assertEquals(subscription.getCurrency(), "EUR"); Assert.assertNull(subscription.getPlanCode()); Assert.assertEquals(subscription.getPlan().getPlanCode(), "gold"); List<String> coupons = new ArrayList<String>(Arrays.asList("abc", "123")); Assert.assertEquals(subscription.getCouponCodes(), coupons); } }
private void verifySubscriptions(final Subscriptions subscriptions) { Assert.assertEquals(subscriptions.size(), 1); final Subscription subscription = subscriptions.get(0); Assert.assertEquals(subscription.getUuid(), "44f83d7cba354d5b84812419f923ea96"); Assert.assertEquals(subscription.getCurrency(), "EUR"); Assert.assertNull(subscription.getPlanCode()); Assert.assertEquals(subscription.getPlan().getPlanCode(), "gold"); List<String> coupons = new ArrayList<String>(Arrays.asList("abc", "123")); Assert.assertEquals(subscription.getCouponCodes(), coupons); } }
@Test(groups = "integration") public void testCreatePlan() throws Exception { final Plan planData = TestUtils.createRandomPlan(); try { // Create a plan final Plan plan = recurlyClient.createPlan(planData); // test creation of plan Assert.assertNotNull(plan); // Check that getting all the plans makes sense Assert.assertTrue(recurlyClient.getPlans().size() > 0); } finally { // Delete the plan recurlyClient.deletePlan(planData.getPlanCode()); // Check that we deleted it try { final Plan retrievedPlan2 = recurlyClient.getPlan(planData.getPlanCode()); Assert.fail("Failed to delete the Plan"); } catch (final RecurlyAPIException e) { // good } } }
@Test(groups = "integration") public void testCreatePlan() throws Exception { final Plan planData = TestUtils.createRandomPlan(); try { // Create a plan final Plan plan = recurlyClient.createPlan(planData); // test creation of plan Assert.assertNotNull(plan); // Check that getting all the plans makes sense Assert.assertTrue(recurlyClient.getPlans().size() > 0); } finally { // Delete the plan recurlyClient.deletePlan(planData.getPlanCode()); // Check that we deleted it try { final Plan retrievedPlan2 = recurlyClient.getPlan(planData.getPlanCode()); Assert.fail("Failed to delete the Plan"); } catch (final RecurlyAPIException e) { // good } } }
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); } }
private void testSubscriptionNotification(final SubscriptionNotification subscriptionNotification) { final PushSubscription subscription = subscriptionNotification.getSubscription(); Assert.assertNotNull(subscription); final Plan plan = subscription.getPlan(); Assert.assertNotNull(plan); Assert.assertEquals(plan.getPlanCode(), "1dpt"); Assert.assertEquals(plan.getName(), "Subscription One"); Assert.assertEquals(subscription.getUuid(), "292332928954ca62fa48048be5ac98ec"); Assert.assertEquals(subscription.getState(), "active"); Assert.assertEquals(subscription.getQuantity(), new Integer(1)); Assert.assertNull(subscription.getUnitAmountInCents()); Assert.assertEquals(subscription.getTotalAmountInCents(), new Integer(200)); Assert.assertEquals(subscription.getActivatedAt(), new DateTime("2010-09-23T22:12:39Z")); Assert.assertNull(subscription.getCanceledAt()); Assert.assertNull(subscription.getExpiresAt()); Assert.assertEquals(subscription.getResumeAt(), new DateTime("2018-03-20T22:12:08Z")); Assert.assertEquals(subscription.getPausedAt(), new DateTime("2018-03-10T22:12:08Z")); Assert.assertEquals(subscription.getRemainingPauseCycles(), new Integer(9)); Assert.assertEquals(subscription.getCurrentPeriodStartedAt(), new DateTime("2010-09-23T22:03:30Z")); Assert.assertEquals(subscription.getCurrentPeriodEndsAt(), new DateTime("2010-09-24T22:03:30Z")); Assert.assertEquals(subscription.getStartsAt(), new DateTime("2010-09-23T07:00:00Z")); Assert.assertNull(subscription.getTrialStartedAt()); Assert.assertNull(subscription.getTrialEndsAt()); }
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); } }
private void testSubscriptionNotification(final SubscriptionNotification subscriptionNotification) { final PushSubscription subscription = subscriptionNotification.getSubscription(); Assert.assertNotNull(subscription); final Plan plan = subscription.getPlan(); Assert.assertNotNull(plan); Assert.assertEquals(plan.getPlanCode(), "1dpt"); Assert.assertEquals(plan.getName(), "Subscription One"); Assert.assertEquals(subscription.getUuid(), "292332928954ca62fa48048be5ac98ec"); Assert.assertEquals(subscription.getState(), "active"); Assert.assertEquals(subscription.getQuantity(), new Integer(1)); Assert.assertNull(subscription.getUnitAmountInCents()); Assert.assertEquals(subscription.getTotalAmountInCents(), new Integer(200)); Assert.assertEquals(subscription.getActivatedAt(), new DateTime("2010-09-23T22:12:39Z")); Assert.assertNull(subscription.getCanceledAt()); Assert.assertNull(subscription.getExpiresAt()); Assert.assertEquals(subscription.getResumeAt(), new DateTime("2018-03-20T22:12:08Z")); Assert.assertEquals(subscription.getPausedAt(), new DateTime("2018-03-10T22:12:08Z")); Assert.assertEquals(subscription.getRemainingPauseCycles(), new Integer(9)); Assert.assertEquals(subscription.getCurrentPeriodStartedAt(), new DateTime("2010-09-23T22:03:30Z")); Assert.assertEquals(subscription.getCurrentPeriodEndsAt(), new DateTime("2010-09-24T22:03:30Z")); Assert.assertEquals(subscription.getStartsAt(), new DateTime("2010-09-23T07:00:00Z")); Assert.assertNull(subscription.getTrialStartedAt()); Assert.assertNull(subscription.getTrialEndsAt()); }
subscriptionData.setPlanCode(plan.getPlanCode()); subscriptionData.setAccount(accountData); subscriptionData.setCurrency(CURRENCY); recurlyClient.deletePlan(planData.getPlanCode());
@Test(groups = "integration") public void testRedeemGiftCardOnSubscription() throws Exception { final GiftCard giftCardData = TestUtils.createRandomGiftCard(); final Plan planData = TestUtils.createRandomPlan(CURRENCY); try { // Purchase a gift card final GiftCard giftCard = recurlyClient.purchaseGiftCard(giftCardData); Assert.assertEquals(giftCard.getProductCode(), giftCardData.getProductCode()); Assert.assertNull(giftCard.getRedeemedAt()); // Let's redeem on a subscription final Plan plan = recurlyClient.createPlan(planData); final Account account = giftCard.getGifterAccount(); final GiftCard redemptionData = new GiftCard(); final Subscription subscriptionData = new Subscription(); // set our gift card redemption data redemptionData.setRedemptionCode(giftCard.getRedemptionCode()); subscriptionData.setGiftCard(redemptionData); subscriptionData.setPlanCode(plan.getPlanCode()); subscriptionData.setAccount(account); subscriptionData.setCurrency(CURRENCY); subscriptionData.setUnitAmountInCents(1242); final Subscription subscription = recurlyClient.createSubscription(subscriptionData); Assert.assertNotNull(subscription); final GiftCard redeemedCard = recurlyClient.getGiftCard(giftCard.getId()); Assert.assertNotNull(redeemedCard.getRedeemedAt()); } finally { recurlyClient.deletePlan(planData.getPlanCode()); } }
@Test(groups = "integration") public void testShippingAddressesOnSubscription() throws Exception { final Account accountData = TestUtils.createRandomAccount(); final Plan planData = TestUtils.createRandomPlan(CURRENCY); final ShippingAddress shippingAddressData = TestUtils.createRandomShippingAddress(); final BillingInfo billingInfoData = TestUtils.createRandomBillingInfo(); billingInfoData.setAccount(null); // null out random account fixture accountData.setBillingInfo(billingInfoData); // add the billing info to account data try { final Account account = recurlyClient.createAccount(accountData); final Plan plan = recurlyClient.createPlan(planData); // Subscribe the user to the plan final Subscription subscriptionData = new Subscription(); // set our shipping address subscriptionData.setShippingAddress(shippingAddressData); // set our sub data subscriptionData.setPlanCode(plan.getPlanCode()); subscriptionData.setCurrency(CURRENCY); subscriptionData.setUnitAmountInCents(1242); // attach the account final Account existingAccount = new Account(); existingAccount.setAccountCode(account.getAccountCode()); subscriptionData.setAccount(existingAccount); final Subscription subscription = recurlyClient.createSubscription(subscriptionData); Assert.assertNotNull(subscription.getHref()); } finally { recurlyClient.closeAccount(accountData.getAccountCode()); recurlyClient.deletePlan(planData.getPlanCode()); } }
@Test(groups = "integration") public void testShippingAddressesOnSubscription() throws Exception { final Account accountData = TestUtils.createRandomAccount(); final Plan planData = TestUtils.createRandomPlan(CURRENCY); final ShippingAddress shippingAddressData = TestUtils.createRandomShippingAddress(); final BillingInfo billingInfoData = TestUtils.createRandomBillingInfo(); billingInfoData.setAccount(null); // null out random account fixture accountData.setBillingInfo(billingInfoData); // add the billing info to account data try { final Account account = recurlyClient.createAccount(accountData); final Plan plan = recurlyClient.createPlan(planData); // Subscribe the user to the plan final Subscription subscriptionData = new Subscription(); // set our shipping address subscriptionData.setShippingAddress(shippingAddressData); // set our sub data subscriptionData.setPlanCode(plan.getPlanCode()); subscriptionData.setCurrency(CURRENCY); subscriptionData.setUnitAmountInCents(1242); // attach the account final Account existingAccount = new Account(); existingAccount.setAccountCode(account.getAccountCode()); subscriptionData.setAccount(existingAccount); final Subscription subscription = recurlyClient.createSubscription(subscriptionData); Assert.assertNotNull(subscription.getHref()); } finally { recurlyClient.closeAccount(accountData.getAccountCode()); recurlyClient.deletePlan(planData.getPlanCode()); } }
recurlyClient.deletePlan(planData.getPlanCode());
@Test(groups = "integration") public void testGetSiteSubscriptions() throws Exception { final Account accountData = TestUtils.createRandomAccount(); final BillingInfo billingInfoData = TestUtils.createRandomBillingInfo(); final Plan planData = TestUtils.createRandomPlan(); try { final Account account = recurlyClient.createAccount(accountData); billingInfoData.setAccount(account); final BillingInfo billingInfo = recurlyClient.createOrUpdateBillingInfo(billingInfoData); final Plan plan = recurlyClient.createPlan(planData); final Subscription subscriptionData = new Subscription(); subscriptionData.setPlanCode(plan.getPlanCode()); subscriptionData.setAccount(accountData); subscriptionData.setCurrency(CURRENCY); subscriptionData.setUnitAmountInCents(1242); subscriptionData.setRemainingBillingCycles(1); // makes sure we have at least one subscription recurlyClient.createSubscription(subscriptionData); // make sure we return more than one subscription Assert.assertTrue(recurlyClient.getSubscriptions().size() > 0); } finally { // Close the account recurlyClient.closeAccount(accountData.getAccountCode()); } }
@Test(groups = "integration") public void testGetSiteSubscriptions() throws Exception { final Account accountData = TestUtils.createRandomAccount(); final BillingInfo billingInfoData = TestUtils.createRandomBillingInfo(); final Plan planData = TestUtils.createRandomPlan(); try { final Account account = recurlyClient.createAccount(accountData); billingInfoData.setAccount(account); final BillingInfo billingInfo = recurlyClient.createOrUpdateBillingInfo(billingInfoData); final Plan plan = recurlyClient.createPlan(planData); final Subscription subscriptionData = new Subscription(); subscriptionData.setPlanCode(plan.getPlanCode()); subscriptionData.setAccount(accountData); subscriptionData.setCurrency(CURRENCY); subscriptionData.setUnitAmountInCents(1242); subscriptionData.setRemainingBillingCycles(1); // makes sure we have at least one subscription recurlyClient.createSubscription(subscriptionData); // make sure we return more than one subscription Assert.assertTrue(recurlyClient.getSubscriptions().size() > 0); } finally { // Close the account recurlyClient.closeAccount(accountData.getAccountCode()); } }
/** * 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; }
/** * 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; }
/** * 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; }
/** * 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; }