예제 #1
0
        public void Scenario1()
        {
            var basket   = new Basket();
            var checkout = new CheckoutService();

            basket.Add(TestData.Bread);
            basket.Add(TestData.Butter);
            basket.Add(TestData.Milk);

            Assert.Equal(2.95m, checkout.CalculateTotal(basket));
        }
        public void Given0BooksItShouldReturn0()
        {
            //Arrange
            ICheckoutService checkout = new CheckoutService(_pricePerBook, _discounts);
            var cart = new ShoppingCart()
            {
                Items = new int[0]
            };
            var expectedResult = 0m;

            //Act
            var result = checkout.CalculateTotal(cart);

            //Assert
            Assert.AreEqual(expectedResult, result);
        }
        public void Given4BooksItShouldApply2Discounts()
        {
            //Arrange
            ICheckoutService checkout = new CheckoutService(_pricePerBook, _discounts);
            var cart = new ShoppingCart()
            {
                Items = new[] { PotterBooks.FOURTH, PotterBooks.FOURTH, PotterBooks.FIFTH, PotterBooks.FIFTH }
            };
            var expectedResult = 30.4m;

            //Act
            var result = checkout.CalculateTotal(cart);

            //Assert
            Assert.AreEqual(expectedResult, result);
        }
        public void Given3BooksItShouldReturnDiscountedPrice()
        {
            //Arrange
            ICheckoutService checkout = new CheckoutService(_pricePerBook, _discounts);
            var cart = new ShoppingCart()
            {
                Items = new[] { PotterBooks.FIRST, PotterBooks.SECOND, PotterBooks.SECOND }
            };
            var expectedResult = 23.2m;

            //Act
            var result = checkout.CalculateTotal(cart);

            //Assert
            Assert.AreEqual(expectedResult, result);
        }