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());
        }
        private static DiscountCalculator CreateDiscountCalculator()
        {
            ICanDiscountStrategy canDiscountStrategy
                = new DayOfWeekCanDiscountStrategy(DayOfWeek.Friday);

            ICalculateDiscountStrategy calculateDiscountStrategy
                = new PercentageCalculateDiscountStrategy(0.5m);

            var discountCalculator
                = new DiscountCalculator(canDiscountStrategy, calculateDiscountStrategy);

            return(discountCalculator);
        }
        public void PercentageDiscountCalculateStrategyTest(
            decimal unitPrice,
            decimal percentage,
            decimal expected)
        {
            // Arrange
            Order order = CreateOrderWith1Product("2019-10-17", unitPrice);

            ICalculateDiscountStrategy calculateDiscountStrategy
                = new PercentageCalculateDiscountStrategy(percentage);

            // Act

            decimal result = calculateDiscountStrategy.CalculateDiscount(order);

            // Assert
            result.Should().Be(expected, "jaki upust????");

            // dotnet add package FluentAssertions
        }