public void UpgradeSubscription_ChargesProRatadAmount() { var subscriberHelper = new SubscriberHelper(TestConstants.TestSiteName, TestConstants.TestApiKey); var subscriber = new Subscriber { CustomerId = TestConstants.TestCustomerId, ScreenName = TestConstants.TestCustomerId, Email = "*****@*****.**" }; var creditCard = new CreditCard { CardType = "visa", ExpirationMonth = 12, ExpirationYear = 2012, FirstName = "Tester", LastName = "Testing", Number = TestConstants.ValidCard, VerificationValue = "123" }; subscriberHelper.SubscribeToSubscriptionPlanWithCreditCard(subscriber, TestConstants.MediumSubscriptionPlanId, creditCard); var upgradeInvoice = subscriberHelper.ChangeSubscriberFeatureLevelWithOnFilePayment(subscriber, TestConstants.HighSubscriptionPlanId); Assert.AreEqual(15, upgradeInvoice.Amount.Value); }
public void UpgradeSubscriberThenDowngradeToFreePlan_ReturnsDowngradedSubscriber() { var custId = TestConstants.TestCustomerId; var sub = _subscribers.GetSubscriberByCustomerId(custId); var subscriber = sub.Entity; Assert.AreEqual(custId, subscriber.CustomerId); var planFactory = _factory.GetSubscriptionPlanClient(); var invoiceFactory = _factory.GetInvoiceClient(); var plans = planFactory.GetSubscriptionPlans(); var freePlan = plans.Entity.SubscriptionPlans.FirstOrDefault(p => p.Id.Value == TestConstants.FreePlanSubscriptionPlanId); var paidPlan = plans.Entity.SubscriptionPlans.FirstOrDefault(p => p.Id.Value == TestConstants.MediumSubscriptionPlanId); Assert.NotNull(freePlan); Assert.NotNull(paidPlan); var creditCard = new CreditCard { CardType = "visa", ExpirationMonth = 12, ExpirationYear = 2012, FirstName = "Tester", LastName = "Testing", Number = TestConstants.ValidCard, VerificationValue = "123" }; var payment = new Payment { AccountType = "credit-card", CreditCard = creditCard }; _subscribers.SubscribeSubscriberToFreeTrial(subscriber.CustomerId, freePlan); var invoiceResponse = invoiceFactory.CreateInvoice(new Invoice { SubscriptionPlanId = paidPlan.Id, Subscriber = subscriber }); var invoice = invoiceResponse.Entity; Assert.NotNull(invoice); invoiceFactory.PayInvoice(invoice, payment); _subscribers.AllowSubscriberAnotherFreeTrial(subscriber.CustomerId); _subscribers.SubscribeSubscriberToFreeTrial(sub.Entity.CustomerId, freePlan); }
public void CreateSubscription_WithHelper_ReturnsInvoice() { var subscriberHelper = new SubscriberHelper(TestConstants.TestSiteName, TestConstants.TestApiKey); var subscriber = new Subscriber { CustomerId = TestConstants.TestCustomerId, ScreenName = TestConstants.TestCustomerId, Email = "*****@*****.**" }; var creditCard = new CreditCard { CardType = "visa", ExpirationMonth = 12, ExpirationYear = 2012, FirstName = "Tester", LastName = "Testing", Number = TestConstants.ValidCard, VerificationValue = "123" }; var invoice = subscriberHelper.SubscribeToSubscriptionPlanWithCreditCard(subscriber, TestConstants.MediumSubscriptionPlanId, creditCard); Assert.NotNull(invoice); }
public void DowngradeSubscription_GivesStoreCreditToSubscriber() { var subscriberHelper = new SubscriberHelper(TestConstants.TestSiteName, TestConstants.TestApiKey); var subscriber = new Subscriber { CustomerId = TestConstants.TestCustomerId, ScreenName = TestConstants.TestCustomerId, Email = "*****@*****.**" }; var creditCard = new CreditCard { CardType = "visa", ExpirationMonth = 12, ExpirationYear = 2012, FirstName = "Tester", LastName = "Testing", Number = TestConstants.ValidCard, VerificationValue = "123" }; subscriberHelper.SubscribeToSubscriptionPlanWithCreditCard(subscriber, TestConstants.HighSubscriptionPlanId, creditCard); subscriberHelper.ChangeSubscriberFeatureLevelWithOnFilePayment(subscriber, TestConstants.LowSubscriptionPlanId); var downgradedSubscriber = subscriberHelper.FetchSubscriber(subscriber.CustomerId); Assert.GreaterOrEqual(downgradedSubscriber.StoreCredit.Value, 0); }
public void CreateSubscription_WithHelper_ForFreeSubscriptionPlan_ThrowsForbiddenActionException() { var subscriberHelper = new SubscriberHelper(TestConstants.TestSiteName, TestConstants.TestApiKey); var subscriber = new Subscriber { CustomerId = TestConstants.TestCustomerId, ScreenName = TestConstants.TestCustomerId, Email = "*****@*****.**" }; var creditCard = new CreditCard { CardType = "visa", ExpirationMonth = 12, ExpirationYear = 2012, FirstName = "Tester", LastName = "Testing", Number = TestConstants.ValidCard, VerificationValue = "123" }; var invoice = subscriberHelper.SubscribeToSubscriptionPlanWithCreditCard(subscriber, TestConstants.FreePlanSubscriptionPlanId, creditCard); }
public void CreateSubscription_WithHelper_WhenGatewayTimesout_ThrowsPaymentGatewayTimeoutException() { var subscriberHelper = new SubscriberHelper(TestConstants.TestSiteName, TestConstants.TestApiKey); var subscriber = new Subscriber { CustomerId = TestConstants.TestCustomerId, ScreenName = TestConstants.TestCustomerId, Email = "*****@*****.**" }; var creditCard = new CreditCard { CardType = "visa", ExpirationMonth = 12, ExpirationYear = 2012, FirstName = "Tester", LastName = "Testing", Number = TestConstants.GatewayUnavailableCard, VerificationValue = "123" }; var invoice = subscriberHelper.SubscribeToSubscriptionPlanWithCreditCard(subscriber, TestConstants.MediumSubscriptionPlanId, creditCard); }