public void Product_All()
        {
            // Arrange
            var chargify = new ChargifyClient();

            // Act
            var result = chargify.Products.All();

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Count() > 0);
        }
        public async Task Product_All_Async()
        {
            // Arrange
            var chargify = new ChargifyClient();

            // Act
            var result = await chargify.Products.AllAsync();

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Count() > 0);
        }
        public async Task ProductFamily_All_Async()
        {
            // Arrange
            var chargify = new ChargifyClient();

            // Act
            var result = await chargify.ProductFamilies.AllAsync();

            // Assert
            Assert.IsNotNull(result);
            //Assert.IsInstanceOfType(result, typeof(IEnumerable<ProductFamily>));
            Assert.IsTrue(result.Count() > 0);
        }
        public void Product_All_WithFamilyId()
        {
            // Arrange
            var chargify = new ChargifyClient();

            // Act
            var result = chargify.Products.All(490966);

            // Assert
            Assert.IsNotNull(result);
            //Assert.IsInstanceOfType(result, typeof(IEnumerable<Product>));
            Assert.IsTrue(result.Count() > 0);
        }
        public async Task Product_Archive_Async()
        {
            // Arrange
            var chargify = new ChargifyClient();
            var newProduct = GetNewProduct();
            var createdProduct = await chargify.Products.CreateAsync(490966, newProduct);

            // Act
            await chargify.Products.ArchiveAsync(createdProduct);
            var foundProduct = await chargify.Products.SingleAsync(createdProduct.id);

            // Assert
            Assert.IsNotNull(foundProduct);
            Assert.IsTrue(foundProduct.archived_at.HasValue);
            Assert.IsTrue(foundProduct.archived_at.Value != DateTime.MinValue);
        }
        public async Task Product_Create_Async()
        {
            // Arrange
            var chargify = new ChargifyClient();
            var newProduct = GetNewProduct();

            // Act
            var result = await chargify.Products.CreateAsync(490966, newProduct);

            // Assert
            Assert.IsNotNull(result);
            //Assert.IsInstanceOfType(result, typeof(Product));
            Assert.IsTrue(newProduct.name == result.name);
            Assert.IsTrue(newProduct.price_in_cents == result.price_in_cents);
            Assert.IsTrue(newProduct.interval_unit == result.interval_unit);
            Assert.IsTrue(newProduct.interval == result.interval);
        }
        public async Task Product_Single_WithHandle_Async()
        {
            // Arrange
            var chargify = new ChargifyClient();

            // Act
            var result = await chargify.Products.SingleAsync("basic");

            // Assert
            Assert.IsNotNull(result);
            //Assert.IsInstanceOfType(result, typeof(Product));
        }
        public void Product_Single_WithHandle()
        {
            // Arrange
            var chargify = new ChargifyClient();

            // Act
            var result = chargify.Products.Single("basic");

            // Assert
            Assert.IsNotNull(result);
            //Assert.IsInstanceOfType(result, typeof(Product));
        }