public void DiscountShouldOnlyApplyToPieAndChips( PieAndChipsMealDealDiscount sut) { IEnumerable <Discount> results = sut.CalculateDiscounts(new ProductFaker().Generate(3)); results.Should().BeEmpty(); }
public void NoDiscountShouldBeAppliedToEmptyProducts( PieAndChipsMealDealDiscount sut) { IEnumerable <Discount> results = sut.CalculateDiscounts(Enumerable.Empty <IProduct>()); results.Should().BeEmpty(); }
public void NoPieShouldNotBeIncludedInDiscount( PieAndChipsMealDealDiscount sut) { PortionOfChips portionOfChips = new PortionOfChips(new PriceFaker().Generate()); IEnumerable <Discount> results = sut.CalculateDiscounts(new[] { portionOfChips }); results.Should().BeEmpty(); }
public void NoChipsShouldNotBeIncludedInDiscount( PieAndChipsMealDealDiscount sut) { Pie pie = new Pie(new PriceFaker().Generate(), LocalDate.MaxIsoValue); IEnumerable <Discount> results = sut.CalculateDiscounts(new[] { pie }); results.Should().BeEmpty(); }
public void PieAndPortionOfChipsShouldBeDiscounted( PieAndChipsMealDealDiscount sut) { PriceFaker priceFaker = new PriceFaker(); Pie pie = new Pie(priceFaker.Generate(), LocalDate.MaxIsoValue); PortionOfChips portionOfChips = new PortionOfChips(priceFaker.Generate()); IEnumerable <Discount> results = sut.CalculateDiscounts(new IProduct[] { pie, portionOfChips }); Price expectedDicountPrice = new Price((pie.Price + portionOfChips.Price) * (sut.DiscountPercent / 100.0m)); results.Should().Contain(new Discount(expectedDicountPrice, pie, portionOfChips)); }