public void TestSubscriptions() { // Arrange EnsureTestPlansDeleted(); // NOTE: Due to the reliance on the API, we must create these for real IPlanEntity planA = CreateMockPlanA(); StripeManager.CreatePlan(planA); ICustomerEntity customer = CreateMockCustomer(); StripeManager.CreateCustomer(customer); ISubscriptionEntity subscription = CreateMockSubscription(); // CREATE // Subscribe // Act StripeSubscription newSub = StripeManager.Subscribe(customer, subscription, planA); Assert.IsNotNull(newSub); // CHANGE // ChangeSubscriptionPlan IPlanEntity planB = CreateMockPlanB(); StripeManager.CreatePlan(planB); StripeSubscription changedSub = StripeManager.ChangeSubscriptionPlan(customer, subscription, planB); Assert.IsNotNull(changedSub); // DELETE StripeSubscription cancelledSub = StripeManager.Unsubscribe(customer, subscription); Assert.IsNotNull(cancelledSub); Assert.IsTrue(cancelledSub.Status == "canceled"); }