public void CalculatorExecutionTest() { // Arrange ICanDiscountStrategy canDiscountStrategy = new DayOfWeekCanDiscountStrategy(DayOfWeek.Friday); ICalculateDiscountStrategy calculateDiscountStrategy = new PercentageCalculateDiscountStrategy(0.5m); IDiscountCalculator discountCalculator = new DiscountCalculator(canDiscountStrategy, calculateDiscountStrategy); Order order = CreateOrderWith1Product("2019-10-18", 1000); // Act Action act = () => discountCalculator.CalculateDiscount(order); // Asserts act .ExecutionTime() .Should() .BeLessOrEqualTo(500.Milliseconds()); }
public void DayOfWeekStrategyCanDiscountTest() { ICanDiscountStrategy discountStrategy = new DayOfWeekCanDiscountStrategy(DayOfWeek.Friday); Order order = CreateOrderWith1Product("2019-10-18", 1000); bool canDiscount = discountStrategy.CanDiscount(order); canDiscount.Should().Be(true); }
public void DayOfWeekStrategyTest(string date, bool expected) { ICanDiscountStrategy discountStrategy = new DayOfWeekCanDiscountStrategy(DayOfWeek.Friday); Order order = CreateOrderWith1Product(date, 1000); bool result = discountStrategy.CanDiscount(order); result.Should().Be(expected); }
private static DiscountCalculator CreateDiscountCalculator() { ICanDiscountStrategy canDiscountStrategy = new DayOfWeekCanDiscountStrategy(DayOfWeek.Friday); ICalculateDiscountStrategy calculateDiscountStrategy = new PercentageCalculateDiscountStrategy(0.5m); var discountCalculator = new DiscountCalculator(canDiscountStrategy, calculateDiscountStrategy); return(discountCalculator); }