/**
  * Terminate a particular {@link Subscription} by it's UUID
  *
  * @param subscription Subscription to terminate
  */
 public void terminateSubscription(final Subscription subscription, final RefundOption refund) {
   doPUT(
       Subscription.SUBSCRIPTION_RESOURCE
           + "/"
           + subscription.getUuid()
           + "/terminate?refund="
           + refund,
       subscription,
       Subscription.class);
 }
  private Subscription verifySubscription(final String subscriptionData) throws IOException {
    final Subscription subscription = xmlMapper.readValue(subscriptionData, Subscription.class);
    Assert.assertEquals(subscription.getUuid(), "44f83d7cba354d5b84812419f923ea96");
    Assert.assertEquals(subscription.getState(), "active");
    Assert.assertEquals(subscription.getUnitAmountInCents(), (Integer) 800);
    Assert.assertEquals(subscription.getCurrency(), "EUR");
    Assert.assertEquals(subscription.getQuantity(), (Integer) 1);
    Assert.assertEquals(subscription.getActivatedAt(), new DateTime("2011-05-27T07:00:00Z"));
    Assert.assertNull(subscription.getCanceledAt(), "");
    Assert.assertNull(subscription.getExpiresAt(), "");
    Assert.assertEquals(
        subscription.getCurrentPeriodStartedAt(), new DateTime("2011-06-27T07:00:00Z"));
    Assert.assertEquals(
        subscription.getCurrentPeriodEndsAt(), new DateTime("2010-07-27T07:00:00Z"));
    Assert.assertNull(subscription.getTrialStartedAt(), "");
    Assert.assertNull(subscription.getTrialEndsAt(), "");
    Assert.assertEquals(subscription.getStartsAt(), new DateTime("2010-07-28T07:00:00Z"));
    Assert.assertEquals(subscription.getCollectionMethod(), "manual");
    Assert.assertEquals(subscription.getNetTerms(), (Integer) 10);
    Assert.assertEquals(subscription.getPoNumber(), "PO19384");
    Assert.assertEquals(subscription.getFirstRenewalDate(), new DateTime("2011-07-01T07:00:00Z"));

    return subscription;
  }
 /**
  * Reactivating a canceled subscription
  *
  * <p>Reactivate a canceled subscription so it renews at the end of the current bill cycle.
  *
  * @param subscription Subscription object
  * @return -?-
  */
 public Subscription reactivateSubscription(final Subscription subscription) {
   return doPUT(
       Subscription.SUBSCRIPTION_RESOURCE + "/" + subscription.getUuid() + "/reactivate",
       subscription,
       Subscription.class);
 }
 /**
  * Cancel a subscription
  *
  * <p>Cancel a subscription so it remains active and then expires at the end of the current bill
  * cycle.
  *
  * @param subscription Subscription object
  * @return -?-
  */
 public Subscription cancelSubscription(final Subscription subscription) {
   return doPUT(
       Subscription.SUBSCRIPTION_RESOURCE + "/" + subscription.getUuid() + "/cancel",
       subscription,
       Subscription.class);
 }