private static void SmartHappyHoursOrderCalculatorTest() { Customer customer = new Customer("Anna", "Kowalska"); Order order = CreateOrder(customer); ICanDiscountStrategy canDiscountStrategy = new HappyHoursCanDiscountStrategy(TimeSpan.Parse("09:00"), TimeSpan.Parse("16:00")); ICalculateDiscountStrategy calculateDiscountStrategy = new PercentageCalculateDiscountStrategy(0.2m); SmartDiscountOrderCalculator calculator = new SmartDiscountOrderCalculator(canDiscountStrategy, calculateDiscountStrategy); decimal discount = calculator.CalculateDiscount(order); Console.WriteLine($"Original amount: {order.Amount:C2} Discount: {discount:C2}"); }
private static void PromotionTest() { ICanDiscountStrategy canDiscountStrategy = new HappyHoursCanDiscountStrategy(TimeSpan.Parse("09:00"), TimeSpan.Parse("16:00")); ICalculateDiscountStrategy calculateDiscountStrategy = new PercentageCalculateDiscountStrategy(0.2m); Promotion promotion = new Promotion { Id = Guid.NewGuid(), Name = "Happy Hours 2020", From = DateTime.Parse("2020-01-01"), To = DateTime.Parse("2020-12-31"), CanDiscountStrategy = canDiscountStrategy, CalculateDiscountStrategy = calculateDiscountStrategy }; Customer customer = new Customer("Anna", "Kowalska"); Order order = CreateOrder(customer); order.Promotion = promotion; }