public void Update_DoesNotUpdateWhenRevertTrue()
{
TestPlan originalPlan = PlanFixture.PLAN_WITHOUT_TRIAL;
SubscriptionRequest request = new SubscriptionRequest
{
PaymentMethodToken = creditCard.Token,
PlanId = originalPlan.Id,
Price = 1.23M
};
Subscription subscription = gateway.Subscription.Create(request).Target;
SubscriptionRequest updateRequest = new SubscriptionRequest
{
Price = 2100M,
Options = new SubscriptionOptionsRequest
{
ProrateCharges = true,
RevertSubscriptionOnProrationFailure = true
}
};
Result<Subscription> result = gateway.Subscription.Update(subscription.Id, updateRequest);
Assert.IsFalse(result.IsSuccess());
subscription = result.Subscription;
Assert.AreEqual(1.23M, subscription.Price);
Assert.AreEqual(2, subscription.Transactions.Count);
Assert.AreEqual(TransactionStatus.PROCESSOR_DECLINED, subscription.Transactions[0].Status);
Assert.AreEqual(0M, subscription.Balance);
}