Exemplo n.º 1
0
        public void WhenTwoBooks_Then15_20()
        {
            var basket = new Basket(new SetBasedDiscountCalculator());

            basket.AddBook(new Book(1, "Book 1", priceOfOneBook));
            basket.AddBook(new Book(2, "Book 2", priceOfOneBook));

            var basketTotal = basket.BasketTotal();

            Assert.AreEqual(15.20m, basketTotal);
        }
Exemplo n.º 2
0
        public void WhenThreeBooks_Then_21_60()
        {
            var basket = new Basket(new SetBasedDiscountCalculator());

            basket.AddBook(new Book(1, "Book 1", priceOfOneBook));
            basket.AddBook(new Book(2, "Book 2", priceOfOneBook));
            basket.AddBook(new Book(3, "Book 3", priceOfOneBook));

            var basketTotal = basket.BasketTotal();

            Assert.AreEqual(21.60m, basketTotal);
        }
Exemplo n.º 3
0
        public void WhenFourBooks_ThreeDifferent_RightAmount()
        {
            var basket = new Basket(new SetBasedDiscountCalculator());

            basket.AddBook(new Book(1, "Book 1", priceOfOneBook));
            basket.AddBook(new Book(1, "Book 1", priceOfOneBook));
            basket.AddBook(new Book(2, "Book 2", priceOfOneBook));
            basket.AddBook(new Book(3, "Book 3", priceOfOneBook));

            var basketTotal = basket.BasketTotal();

            Assert.AreEqual(29.60m, basketTotal);
        }
Exemplo n.º 4
0
        public void WhenFiveBooks_Then_30_Euros()
        {
            var basket = new Basket(new SetBasedDiscountCalculator());

            basket.AddBook(new Book(1, "Book 1", priceOfOneBook));
            basket.AddBook(new Book(2, "Book 2", priceOfOneBook));
            basket.AddBook(new Book(3, "Book 3", priceOfOneBook));
            basket.AddBook(new Book(4, "Book 4", priceOfOneBook));
            basket.AddBook(new Book(5, "Book 5", priceOfOneBook));

            var basketTotal = basket.BasketTotal();

            Assert.AreEqual(30m, basketTotal);
        }
Exemplo n.º 5
0
        public void AddBook_UpdateBasketTotal()
        {
            var bookToAdd = new Book {
                Name = "Phil .Stone"
            };

            _basket.AddBook(bookToAdd);
            Assert.AreEqual(1, _basket.TotalNumberOfItems);
        }
Exemplo n.º 6
0
        public void WhenOneBook_Then8Euros()
        {
            var basket = new Basket(new SetBasedDiscountCalculator());

            basket.AddBook(new Book(1, "Book 1", priceOfOneBook));

            var basketTotal = basket.BasketTotal();

            Assert.AreEqual(8, basketTotal);
        }
Exemplo n.º 7
0
        public void MultipleOfEight(int numberOfBook, int expected)
        {
            var basket = new Basket();
            var book   = new Book("test", 8, Guid.NewGuid());

            for (int i = 0; i < numberOfBook; i++)
            {
                basket.AddBook(book);
            }

            var multipleOfEight = basket.CalculateFinalPrice();

            Assert.Equal(multipleOfEight, expected);
        }
Exemplo n.º 8
0
        public void WhenExampleBasketProvided_ThenCorrectAmountIsObtained()
        {
            var basket = new Basket(new SetBasedDiscountCalculator());

            basket.AddBook(new Book(1, "Book 1", priceOfOneBook));
            basket.AddBook(new Book(1, "Book 1", priceOfOneBook));
            basket.AddBook(new Book(2, "Book 2", priceOfOneBook));
            basket.AddBook(new Book(2, "Book 2", priceOfOneBook));
            basket.AddBook(new Book(3, "Book 3", priceOfOneBook));
            basket.AddBook(new Book(3, "Book 3", priceOfOneBook));
            basket.AddBook(new Book(4, "Book 4", priceOfOneBook));
            basket.AddBook(new Book(5, "Book 5", priceOfOneBook));

            var basketTotal = basket.BasketTotal();

            Assert.AreEqual(51.20m, basketTotal);
        }
Exemplo n.º 9
0
        public async Task Process(AddBookInput input)
        {
            Book book = await bookReadOnlyRepository.Get(input.BookId);

            if (book == null)
            {
                throw new BookNotFoundException($"The book {input.BookId} does not exist.");
            }

            Basket basket = (input.BasketId != null)? await basketReadOnlyRepository.Get(input.BasketId):new Basket();

            Addition addition = new Addition(book.Id);

            basket.AddBook(addition);

            await basketWriteOnlyRepository.Update(basket);

            OrderOutput   orderResponse = outputConverter.Map <OrderOutput>(addition);
            AddBookOutput output        = new AddBookOutput(orderResponse, basket.GetTotalPrice().Value);

            outputBoundary.Populate(output);
        }
Exemplo n.º 10
0
        public void should_two_books_price_equals_to_16_when_they_have_the_same_volume()
        {
            //arrange
            _basket.AddBook(new Book("Volume 1"));
            _basket.AddBook(new Book("Volume 1"));
            var expected = 16;
            //act
            var actual = _basket.Checkout();

            //assert
            Assert.Equal(expected, actual);
        }
Exemplo n.º 11
0
        public void WhenIAddABookToBasket()
        {
            var book = new Book();

            _basket.AddBook(book);
        }