예제 #1
0
        public void Scan_Product_Test()
        {
            var          fakeReadonlyDataRepository = new FakeReadonlyDataRepository();
            var          checkout = new Checkout(fakeReadonlyDataRepository);
            const string sku      = "A";

            checkout.Scan(sku);
            var expected = checkout.Products.FirstOrDefault(x => x.Sku == sku);

            // with testing framework, setup can be easier, and assert can spread to individual test function.
            Assert.NotNull(expected);
            Assert.Equal(50, expected.Price);
        }
예제 #2
0
        public void Get_Total_Price_Test(int price)
        {
            var fakeReadonlyDataRepository = new FakeReadonlyDataRepository();
            var checkout = new Checkout(fakeReadonlyDataRepository);
            var product  = new Product
            {
                Price = price
            };

            checkout.Products.Add(product);

            var expected = checkout.GetTotalPrice();

            Assert.Equal(price, expected);
        }
예제 #3
0
        public void Add_Offer_Products_Total_Price_Should_Be_Offer_Price(int productPrice, int offerQuantity, int offerPrice)
        {
            // mocking data
            var fakeReadonlyDataRepository = new FakeReadonlyDataRepository();
            var offer = fakeReadonlyDataRepository.Offers.First();

            offer.Price    = offerPrice;
            offer.Quantity = offerQuantity;
            var product = new Product
            {
                Sku   = offer.Sku,
                Price = productPrice,
            };
            var checkout = new Checkout(fakeReadonlyDataRepository);

            for (var i = 0; i < offerQuantity; i++)
            {
                checkout.Products.Add(product);
            }

            var expected = checkout.GetTotalPrice();

            Assert.Equal(offerPrice, expected);
        }