public void AnotherPromotionMayNotBeStartedIfTheyDoOverlap() { var product = CreateTestProduct(); var factory = new RedPencilFactory(); var promotion = factory.CreatePromotion(product, DateTime.Now.Subtract(TimeSpan.FromDays(1)), DateTime.Now); var anotherPromotion = factory.CreatePromotion(product, DateTime.Now.Subtract(TimeSpan.FromHours(12)), DateTime.Now.AddDays(1)); }
public void PromotionCanLastUpTo30Days() { var product = CreateTestProduct(); var factory = new RedPencilFactory(); var promotion = factory.CreatePromotion(product, DateTime.Now, DateTime.Now.AddDays(30)); Assert.AreEqual(30, (promotion.EndDate - promotion.StartDate).Days); }
public void PriceReductionToTotalDiscountGreaterThan30PercentEndsPromotion() { var product = CreateTestProduct(); var factory = new RedPencilFactory(); var promotion = factory.CreatePromotion(product, DateTime.Now, DateTime.Now.AddDays(30)); var promotionEnd = promotion.EndDate; promotion.Begin(product); product.SalePrice = .6; Assert.AreNotEqual(promotionEnd, promotion.EndDate); }
public void PriceIncreaseDuringPromotionEndsIt() { var product = CreateTestProduct(); var factory = new RedPencilFactory(); var promotion = factory.CreatePromotion(product, DateTime.Now, DateTime.Now.AddDays(30)); var promotionEnd = promotion.EndDate; promotion.Begin(product); product.SalePrice = .95; Assert.AreNotEqual(promotionEnd, promotion.EndDate); }
public void PriceReductionDuringPromotionDoesNotProlongIt() { var product = CreateTestProduct(); var factory = new RedPencilFactory(); var promotion = factory.CreatePromotion(product, DateTime.Now, DateTime.Now.AddDays(30)); var promotionLength = promotion.EndDate - promotion.StartDate; promotion.Begin(product); product.SalePrice = .8; Assert.AreEqual(promotionLength, promotion.EndDate - promotion.StartDate); }
public void PromotionCanNotLastMoreThan30Days() { var product = CreateTestProduct(); var factory = new RedPencilFactory(); var promotion = factory.CreatePromotion(product, DateTime.Now.Subtract(TimeSpan.FromDays(31)), DateTime.Now); }