public void Coupon_Read_Percentage()
        {
            // Arrange
            var productFamily = Chargify.GetProductFamilyList().Values.FirstOrDefault();

            if (productFamily == null)
            {
                Assert.Inconclusive("A valid product family could not be found.");
            }
            var coupons  = Chargify.GetAllCoupons(productFamily.ID);
            var coupon   = coupons.FirstOrDefault(c => c.Value.Percentage > 0).Value;
            var couponID = coupon.ID;

            // Act
            var result = Chargify.LoadCoupon(productFamily.ID, couponID);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Percentage != decimal.MinValue);
            Assert.IsTrue(result.Percentage > 0);
            Assert.AreEqual(coupon.Percentage, result.Percentage);
            Assert.AreEqual(result.ID, couponID);

            TestContext.WriteLine($"Coupon percentage: {coupon.Percentage}");
        }
        public void Coupon_Update()
        {
            // Arrange
            var productFamily = Chargify.GetProductFamilyList().Values.FirstOrDefault();

            if (productFamily == null)
            {
                Assert.Inconclusive("A valid product family could not be found.");
            }
            var foundCoupon = Chargify.GetAllCoupons(productFamily.ID).FirstOrDefault().Value;

            if (foundCoupon == null)
            {
                Assert.Inconclusive("A valid coupon could not be found.");
            }
            string originalName = foundCoupon.Name;

            foundCoupon.Name = originalName + "_1";

            // Act
            var updatedCoupon = Chargify.UpdateCoupon(foundCoupon);

            // Assert
            Assert.IsNotNull(updatedCoupon);
            //Assert.IsInstanceOfType(updatedCoupon, typeof(ICoupon));
            Assert.IsTrue(updatedCoupon.Name == originalName + "_1");

            // Cleanup
            updatedCoupon.Name = originalName;
            var restoredCoupon = Chargify.UpdateCoupon(updatedCoupon);

            Assert.IsTrue(restoredCoupon.Name == originalName);
        }
        public void Coupon_Read()
        {
            // Arrange
            var productFamily = Chargify.GetProductFamilyList().Values.FirstOrDefault();

            if (productFamily == null)
            {
                Assert.Inconclusive("A valid product family could not be found.");
            }
            var coupons  = Chargify.GetAllCoupons(productFamily.ID);
            var couponID = coupons.FirstOrDefault(c => c.Value.AmountInCents > 0).Key;

            // Act
            var result = Chargify.LoadCoupon(productFamily.ID, couponID);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.AmountInCents != int.MinValue);
            Assert.IsTrue(result.AmountInCents > 0);
            Assert.IsTrue(result.Amount == (Convert.ToDecimal(result.AmountInCents) / 100));
            Assert.AreEqual(result.ID, couponID);
        }