コード例 #1
0
        public void Subscription_Can_Reactivate_With_Trial()
        {
            // Arrange
            var trialingProduct     = Chargify.GetProductList().Values.FirstOrDefault(p => p.TrialInterval > 0);
            var referenceId         = Guid.NewGuid().ToString();
            var expMonth            = DateTime.Now.AddMonths(1).Month;
            var expYear             = DateTime.Now.AddMonths(12).Year;
            var newCustomer         = new CustomerAttributes(Faker.Name.First(), Faker.Name.Last(), Faker.Internet.Email(), Faker.Phone.Number(), Faker.Company.Name(), referenceId);
            var newPaymentInfo      = GetTestPaymentMethod(newCustomer);
            var createdSubscription = Chargify.CreateSubscription(trialingProduct.Handle, newCustomer, newPaymentInfo);

            Assert.IsNotNull(createdSubscription);
            var deletedSubscription = Chargify.DeleteSubscription(createdSubscription.SubscriptionID, "Delete for test Subscription_Can_Reactivate_With_Trial");

            Assert.IsNotNull(deletedSubscription);
            var foundSubscription = Chargify.Find <Subscription>(createdSubscription.SubscriptionID);

            Assert.IsTrue(foundSubscription.State == SubscriptionState.Canceled, "Expected cancelled subscription on a trial product");

            // Act
            var result = Chargify.ReactivateSubscription(foundSubscription.SubscriptionID, true, null, null);

            // Assert
            Assert.IsNotNull(result);
#if !NUNIT
            Assert.IsInstanceOfType(result, typeof(ISubscription));
#endif
            Assert.IsTrue(result.State != foundSubscription.State);
            Assert.IsTrue(result.State == SubscriptionState.Trialing);
        }
コード例 #2
0
        public void Subscription_Reactivation()
        {
            // Arrange
            var product        = Chargify.GetProductList().Values.FirstOrDefault();
            var referenceId    = Guid.NewGuid().ToString();
            var expMonth       = DateTime.Now.AddMonths(1).Month;
            var expYear        = DateTime.Now.AddMonths(12).Year;
            var newCustomer    = new CustomerAttributes(Faker.Name.First(), Faker.Name.Last(), Faker.Internet.Email(), Faker.Phone.Number(), Faker.Company.Name(), referenceId);
            var newPaymentInfo = GetTestPaymentMethod(newCustomer);

            // Act
            var newSubscription    = Chargify.CreateSubscription(product.Handle, newCustomer, newPaymentInfo);
            var result             = Chargify.DeleteSubscription(newSubscription.SubscriptionID, "testing");
            var foundSubscription  = Chargify.Find <Subscription>(newSubscription.SubscriptionID);
            var resultSubscription = Chargify.ReactivateSubscription(foundSubscription.SubscriptionID);

            // Assert
#if !NUNIT
            Assert.IsInstanceOfType(newSubscription, typeof(Subscription));
            Assert.IsInstanceOfType(foundSubscription, typeof(Subscription));
            Assert.IsInstanceOfType(resultSubscription, typeof(Subscription));
#endif
            Assert.IsNotNull(newSubscription);
            Assert.IsTrue(result);
            Assert.IsNotNull(foundSubscription);
            Assert.IsTrue(foundSubscription.State == SubscriptionState.Canceled);
            Assert.IsNotNull(newSubscription);
            Assert.IsTrue(resultSubscription.State == SubscriptionState.Active);
        }
コード例 #3
0
        public void SubOverride_Can_Override()
        {
            // Arrange
            var      subscription        = Chargify.GetSubscriptionList().FirstOrDefault(s => s.Value.State == SubscriptionState.Active).Value;
            DateTime now                 = DateTime.Now;
            DateTime activatedAt         = now.AddDays(-4);
            DateTime canceledAt          = now;
            DateTime expiresAt           = now.AddDays(4);
            string   cancellationMessage = Guid.NewGuid().ToString();

            // Act
            bool result = Chargify.SetSubscriptionOverride(subscription.SubscriptionID, activatedAt, canceledAt, cancellationMessage, expiresAt);
            var  retrievedSubscription = Chargify.Find <Subscription>(subscription.SubscriptionID);

            // Assert
            Assert.IsTrue(result);
            Assert.IsTrue(IsDateTimeEqual(activatedAt, retrievedSubscription.ActivatedAt));
            Assert.IsFalse(IsDateTimeEqual(subscription.ActivatedAt, retrievedSubscription.ActivatedAt));
            Assert.IsTrue(IsDateTimeEqual(canceledAt, retrievedSubscription.CanceledAt));
            Assert.IsFalse(IsDateTimeEqual(subscription.CanceledAt, retrievedSubscription.CanceledAt));
            Assert.AreEqual(cancellationMessage, retrievedSubscription.CancellationMessage);
            Assert.AreNotEqual(subscription.CancellationMessage, retrievedSubscription.CancellationMessage);
            Assert.IsTrue(IsDateTimeEqual(expiresAt, retrievedSubscription.ExpiresAt));
            Assert.IsFalse(IsDateTimeEqual(subscription.ExpiresAt, retrievedSubscription.ExpiresAt));
        }
コード例 #4
0
        public void Subscription_Reactivation()
        {
            // Arrange
            var product        = Chargify.GetProductList().Values.FirstOrDefault();
            var referenceID    = Guid.NewGuid().ToString();
            var expMonth       = DateTime.Now.AddMonths(1).Month;
            var expYear        = DateTime.Now.AddMonths(12).Year;
            var newCustomer    = new CustomerAttributes("Scott", "Pilgrim", "*****@*****.**", "123-456-7890", "Chargify", referenceID);
            var newPaymentInfo = GetTestPaymentMethod(newCustomer);

            // Act
            var newSubscription    = Chargify.CreateSubscription(product.Handle, newCustomer, newPaymentInfo);
            var result             = Chargify.DeleteSubscription(newSubscription.SubscriptionID, "testing");
            var foundSubscription  = Chargify.Find <Subscription>(newSubscription.SubscriptionID);
            var resultSubscription = Chargify.ReactivateSubscription(foundSubscription.SubscriptionID);

            // Assert
#if !NUNIT
            Assert.IsInstanceOfType(newSubscription, typeof(Subscription));
            Assert.IsInstanceOfType(foundSubscription, typeof(Subscription));
            Assert.IsInstanceOfType(resultSubscription, typeof(Subscription));
#endif
            Assert.IsNotNull(newSubscription);
            Assert.IsTrue(result);
            Assert.IsNotNull(foundSubscription);
            Assert.IsTrue(foundSubscription.State == SubscriptionState.Canceled);
            Assert.IsNotNull(newSubscription);
            Assert.IsTrue(resultSubscription.State == SubscriptionState.Active);
        }
コード例 #5
0
        public void Subscription_Can_Reactivate_Without_Trial()
        {
            // Arrange
            var trialingProduct     = Chargify.GetProductList().Values.FirstOrDefault(p => p.TrialInterval > 0);
            var referenceID         = Guid.NewGuid().ToString();
            var expMonth            = DateTime.Now.AddMonths(1).Month;
            var expYear             = DateTime.Now.AddMonths(12).Year;
            var newCustomer         = new CustomerAttributes("Scott", "Pilgrim", "*****@*****.**", "123-456-7890", "Chargify", referenceID);
            var newPaymentInfo      = GetTestPaymentMethod(newCustomer);
            var createdSubscription = Chargify.CreateSubscription(trialingProduct.Handle, newCustomer, newPaymentInfo);

            Assert.IsNotNull(createdSubscription);
            var deletedSubscription = Chargify.DeleteSubscription(createdSubscription.SubscriptionID, "Delete for test Subscription_Can_Reactivate_With_Trial");

            Assert.IsNotNull(deletedSubscription);
            var foundSubscription = Chargify.Find <Subscription>(createdSubscription.SubscriptionID);

            Assert.IsTrue(foundSubscription.State == SubscriptionState.Canceled, "Expected cancelled subscription on a trial product");

            // Act
            var result = Chargify.ReactivateSubscription(foundSubscription.SubscriptionID, false);

            // Assert
            Assert.IsNotNull(result);
#if !NUNIT
            Assert.IsInstanceOfType(result, typeof(ISubscription));
#endif
            Assert.IsTrue(result.State != foundSubscription.State);
            Assert.IsTrue(result.State == SubscriptionState.Active);
        }
コード例 #6
0
        public void Subscription_Load_Where_State_Is_TrialEnded()
        {
            // Arrange
            var subscription = Chargify.GetSubscriptionList().FirstOrDefault(s => s.Value.State == SubscriptionState.Trial_Ended).Value as Subscription;

            Assert.IsNotNull(subscription, "No applicable subscription found.");

            // Act
            var retreivedSubscription = Chargify.Find <Subscription>(subscription.SubscriptionID);

            // Assert
            Assert.IsNotNull(retreivedSubscription);
            Assert.IsTrue(retreivedSubscription.State == SubscriptionState.Trial_Ended);
            Assert.IsInstanceOfType(retreivedSubscription, typeof(Subscription));
        }
コード例 #7
0
        public void Subscription_Can_Be_Purged()
        {
            // Arrange
            var trialingProduct = Chargify.GetProductList().Values.FirstOrDefault(p => p.TrialInterval > 0);
            var referenceId     = Guid.NewGuid().ToString();
            var expMonth        = DateTime.Now.AddMonths(1).Month;
            var expYear         = DateTime.Now.AddMonths(12).Year;

            var newCustomer         = new CustomerAttributes(Faker.Name.FirstName(), Faker.Name.LastName(), Faker.Internet.Email(), Faker.Phone.PhoneNumber(), Faker.Company.CompanyName(), referenceId);
            var newPaymentInfo      = GetTestPaymentMethod(newCustomer);
            var createdSubscription = Chargify.CreateSubscription(trialingProduct.Handle, newCustomer, newPaymentInfo);

            Assert.IsNotNull(createdSubscription);

            Chargify.PurgeSubscription(createdSubscription.SubscriptionID);
            var purgedSubscription = Chargify.Find <Subscription>(createdSubscription.SubscriptionID);

            Assert.IsNull(purgedSubscription);
        }