Ejemplo n.º 1
0
        public void WhenICalculateTheDiscount()
        {
            var discountCalculator = new DiscountCalculatorFactory().Create();
            var customer           = ((Customer)ScenarioContext.Current["Customer"]);

            ScenarioContext.Current["Discount"] = discountCalculator.CalculateDiscount(customer);
        }
Ejemplo n.º 2
0
        public void CalculateDiscount_ForCustomerOnBirthday_ShouldReturnForty()
        {
            var customer = new Customer {
                Birthdate = DateTime.UtcNow
            };
            var discountCalculator = new DiscountCalculatorFactory().Create();

            var result = discountCalculator.CalculateDiscount(customer);

            result.Should().Be(40);
        }
        public void TestCalculateDiscountOnBirthday()
        {
            var customer = new Customer {
                Birthdate = DateTime.UtcNow
            };
            var discountCalculator = new DiscountCalculatorFactory().Create();

            var result = discountCalculator.CalculateDiscount(customer);

            Assert.AreEqual(40, result);
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            var vipCustomer = new VipCustomer();
            var order       = new Order()
            {
                Price = 1000
            };

            var discountService = DiscountCalculatorFactory.Create(vipCustomer);
            var finalPrice      = discountService.Calculate(order);

            Console.WriteLine("You have to pay {0} dollars", finalPrice);
            Console.ReadLine();
        }
        public void CalculateDiscount_ForGoldMemberOlderThan40_ShouldReturn30()
        {
            var customer = new Customer
            {
                Birthdate    = new DateTime(1940, 1, 1),
                IsGoldMember = true
            };

            var calculator = new DiscountCalculatorFactory().Create();

            var discount = calculator.CalculateDiscount(customer);

            discount.Should().Be(30);
        }
        public void CalculateDiscount_ForNonGoldMemberOnBirthday_ShouldReturn40()
        {
            var customer = new Customer
            {
                Birthdate    = DateTime.UtcNow,
                IsGoldMember = false
            };

            var calculator = new DiscountCalculatorFactory().Create();

            var discount = calculator.CalculateDiscount(customer);

            discount.Should().Be(40);
        }
Ejemplo n.º 7
0
        public void CalculateDiscount_ForGoldMemberEmployeeOnBirthday_ShouldReturnForty()
        {
            var customer = new CustomerBuilder()
                           .AsEmployee()
                           .AsGoldMember()
                           .WithBirthDate(DateTime.UtcNow)
                           .Build();

            var discountCalculator = new DiscountCalculatorFactory().Create();

            var discount = discountCalculator.CalculateDiscount(customer);

            discount.Should().Be(40);
        }
        public void CalculateDiscount_ForNonGoldMemberNotOnBirthday_ShouldReturn0()
        {
            var customer = new Customer
            {
                Birthdate    = DateTime.UtcNow.Subtract(TimeSpan.FromDays(10 * 365)),
                IsGoldMember = false,
                IsEmployee   = false
            };

            var calculator = new DiscountCalculatorFactory().Create();

            var discount = calculator.CalculateDiscount(customer);

            discount.Should().Be(0);
        }
        public void CalculateDiscount_ForGoldMemberYoungerThan40AndIsEmployee_ShouldReturn15()
        {
            var customer = new Customer
            {
                Birthdate    = DateTime.UtcNow.Subtract(TimeSpan.FromDays(10 * 365)),
                IsGoldMember = true,
                IsEmployee   = true
            };

            var calculator = new DiscountCalculatorFactory().Create();

            var discount = calculator.CalculateDiscount(customer);

            discount.Should().Be(15);
        }
 public IShoppingCartEngineBuilder AddDiscountCalculatorFactory(DiscountCalculatorFactory discountCalculatorFactory)
 {
     shoppingCartEngine.DiscountCalculatorFactory = discountCalculatorFactory;
     return(this);
 }