public void Test_CalculateFinalBasketPrice_RegistersCorrectDiscountAndReturnsCorrectTotalPrice_When7BooksInBasket()
        {
            //arrange
            Checkout checkout = new Checkout();
            Basket   basket   = new Basket();
            Book     book1    = new Book("", "", "", (decimal)10.00, 70);
            Book     book2    = new Book("", "", "", (decimal)20.00, 200);
            Book     book3    = new Book("", "", "", (decimal)30.00, 100);
            Book     book4    = new Book("", "", "", (decimal)40.00, 70);
            Book     book5    = new Book("", "", "", (decimal)50.00, 200);
            Book     book6    = new Book("", "", "", (decimal)60.00, 200);
            Book     book7    = new Book("", "", "", (decimal)70.00, 100);

            basket.AddBook(book1);
            basket.AddBook(book2);
            basket.AddBook(book3);
            basket.AddBook(book4);
            basket.AddBook(book5);
            basket.AddBook(book6);
            basket.AddBook(book7);

            //act
            decimal actualValue = checkout.CalculateFinalBasketPrice(basket.FindAllBooks());

            //assert
            decimal sumOfPrices = (decimal)(10.00 + 20.00 + 30.00 + 40.00 + 50.00 + 60.00 + 70.00);

            Assert.That(actualValue, Is.EqualTo(sumOfPrices - (2 / 100) * sumOfPrices));
        }
        public void Test_CalculateFinalBasketPrice_Returns0_WhenNoBooksInBasket()
        {
            //arrange
            Checkout checkout = new Checkout();
            Basket   basket   = new Basket();

            //act
            decimal actualValue = checkout.CalculateFinalBasketPrice(basket.FindAllBooks());

            //assert
            Assert.That(actualValue, Is.EqualTo(0));
        }
        public void Test_CalculateFinalBasketPrice_ReturnsBookPrice_When1BookInBasket()
        {
            //arrange
            Checkout checkout = new Checkout();
            Basket   basket   = new Basket();

            basket.AddBook(new Book("", "", "", (decimal)20.25, 60));


            //act
            decimal actualValue = checkout.CalculateFinalBasketPrice(basket.FindAllBooks());

            //assert
            Assert.That(actualValue, Is.EqualTo(20.25));
        }
        public void Test_CalculateFinalBasketPrice_ReturnsSumOfBookPrices_When2BooksInBasket()
        {
            //arrange
            Checkout checkout = new Checkout();
            Basket   basket   = new Basket();
            Book     book1    = new Book("", "", "", (decimal)10.00, 70);
            Book     book2    = new Book("", "", "", (decimal)25.00, 200);

            basket.AddBook(book1);
            basket.AddBook(book2);

            //act
            decimal actualValue = checkout.CalculateFinalBasketPrice(basket.FindAllBooks());

            //assert
            Assert.That(actualValue, Is.EqualTo(10.00 + 25.00));
        }