示例#1
0
        public void Setup()
        {
            _subscription = new Subscription();
            _now          = DateTime.Now;

            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 7, _now));
        }
示例#2
0
        public void SubscriptionCalculatesDurationCorrectly_WithNegativeDurationPurchases()
        {
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, -20, _now.AddDays(1)));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 19, _now.AddDays(2)));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 18, _now.AddDays(4)));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 17, _now.AddDays(-20)));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 16, _now.AddDays(1000)));

            Assert.AreEqual(19 + 18 + 17 + 16, _subscription.TotalDurationMonths);
        }
示例#3
0
        public void SubscriptionCalculatesCostCorrectly_WithMultiplePurchases()
        {
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(1), price: 10));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(2), price: 15));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(4), price: 22.5f));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(-20), price: 100));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(1000), price: 0));

            Assert.AreEqual(10 + 15 + 22.5f + 100, _subscription.TotalPurchaseCostUSD);
        }
示例#4
0
        public void SubscriptionCalculatesPurchaseDateCorrectly_WithMultiplePurchases()
        {
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(1)));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(2)));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(4)));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(-20)));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(1000)));

            SubscriptionHelper.AssertDateEquality(_now.AddDays(-20), _subscription.Purchased);
        }
示例#5
0
        public void SubscriptionCalculatesCostCorrectly_WithAlteredCostPurchases()
        {
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(1), price: 10));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(2), price: 15));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(4), price: 22.5f));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(-20), price: 100));
            _subscription.ProductsPurchased.Add(SubscriptionHelper.GetPurchase(_subscription, 1, _now.AddDays(1000), price: 0));

            var product = new Product {
                DurationMonths = 1, PriceUSD = 100, TaxUSD = 100
            };
            var purchase = new ProductPurchase(product, _subscription);

            _subscription.ProductsPurchased.Add(purchase);
            Assert.AreEqual(10 + 15 + 22.5f + 100 + 100, _subscription.TotalPurchaseCostUSD);

            product.PriceUSD = 50;
            Assert.AreEqual(10 + 15 + 22.5f + 100 + 100, _subscription.TotalPurchaseCostUSD);
        }