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

            ScenarioContext.Current["Discount"] = discountCalculator.CalculateDiscount(customer);
        }
        public void TestCalculateDiscountOnBirthday()
        {
            var customer = new Customer {
                Birthdate = DateTime.UtcNow
            };
            var discountCalculator = new DiscountCalculatorFactory().Create();

            var result = discountCalculator.CalculateDiscount(customer);

            Assert.AreEqual(40, result);
        }
Beispiel #3
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 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);
        }
Beispiel #6
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);
        }