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); }
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); }
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); }
public void SubscriptionIdentifiesActivePause() { _subscription.Pauses.Add(SubscriptionHelper.GetPause(TimeSpan.FromDays(3), _now + TimeSpan.FromDays(2))); _subscription.Pauses.Add(SubscriptionHelper.GetPause(TimeSpan.FromHours(2), _now + TimeSpan.FromDays(3))); var activePause = SubscriptionHelper.GetActivePause(_now + TimeSpan.FromDays(4)); _subscription.Pauses.Add(activePause); _subscription.Pauses.Add(SubscriptionHelper.GetPause(new TimeSpan(0, 1, 2, 3, 4), _now + TimeSpan.FromDays(5))); _subscription.Pauses.Add(SubscriptionHelper.GetActivePause()); Assert.AreEqual(activePause, _subscription.ActivePause); }
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); }