Esempio n. 1
0
        public void GivenANewCashier_WhenInitializedWithAValidPricelist_ThenTheMerchantIsNotCalled()
        {
            var merchantSpy = new MerchantSpy();
            var _           = new Cashier(GetPricelistWithOneValidItem(1), merchantSpy);

            Assert.Equal(0, merchantSpy.ContactQuantity);
        }
Esempio n. 2
0
        public void GivenACashierWithPricelist_WhenCheckingOutWithNullCart_ThenTheMerchantIsNotCalled()
        {
            var merchantSpy = new MerchantSpy();
            var cashier     = new Cashier(GetPricelistWithOneValidItem(VALID_PRICE), merchantSpy);

            Assert.Throws <ArgumentException>(() => cashier.Checkout(null, GetValidCreditCard()));
            Assert.Equal(0, merchantSpy.ContactQuantity);
        }
Esempio n. 3
0
        public void GivenAValidCashierAndCart_WhenCheckingOutWithNullCreditCardNumber_ThenTheMerchantIsNotCalled()
        {
            var merchantSpy = new MerchantSpy();
            var cart        = GetCartWithOneItem();
            var cashier     = new Cashier(GetPricelistWithOneValidItem(1), merchantSpy);

            Assert.Throws <ArgumentException>(() => cashier.Checkout(cart, null));
            Assert.Equal(0, merchantSpy.ContactQuantity);
        }
Esempio n. 4
0
        public void GivenACashierWithPricelist_WhenCheckingOutCartWithItem_ThenTheMerchantIsCalledOnce()
        {
            var merchantSpy = new MerchantSpy();
            var cart        = GetCartWithACatalogWithValidItem();

            cart.Add(VALID_ITEM, 1);
            var cashier = new Cashier(GetPricelistWithOneValidItem(1), merchantSpy);

            cashier.Checkout(cart, GetValidCreditCard());
            Assert.Equal(1, merchantSpy.ContactQuantity);
        }
Esempio n. 5
0
        public void GivenACashierWithPricelist_WhenCheckingOutCartWithItem_ThenCalculatesTheTotalSum(decimal price)
        {
            var merchantSpy = new MerchantSpy();
            var cart        = GetCartWithACatalogWithValidItem();

            cart.Add(VALID_ITEM, 1);
            var cashier = new Cashier(GetPricelistWithOneValidItem(price), merchantSpy);

            cashier.Checkout(cart, GetValidCreditCard());
            Assert.Equal(merchantSpy.SavedTotal, price);
        }
Esempio n. 6
0
        public void GivenACashierWithPricelist_WhenCheckingOutCartWithInvalidItem_ThenTheMerchantIsNotCalled()
        {
            var merchantSpy = new MerchantSpy();
            var cart        = GetCartWithACatalogWithTwoValidItems();

            cart.Add(ANOTHER_VALID_ITEM, 1);
            var cashier = new Cashier(GetPricelistWithOneValidItem(1), merchantSpy);

            Assert.Throws <KeyNotFoundException>(() => cashier.Checkout(cart, GetValidCreditCard()));
            Assert.Equal(0, merchantSpy.ContactQuantity);
        }
Esempio n. 7
0
        public void GivenACashierWithPricelist_WhenCheckingOutCartWithSeveralItems_ThenCalculatesTheTotalSum()
        {
            var merchantSpy = new MerchantSpy();
            var cart        = GetCartWithACatalogWithTwoValidItems();

            cart.Add(VALID_ITEM, 1);
            cart.Add(ANOTHER_VALID_ITEM, 4);
            var cashier = new Cashier(GetPricelistWithTwoValidItems(), merchantSpy);

            cashier.Checkout(cart, GetValidCreditCard());
            Assert.Equal(22, merchantSpy.SavedTotal);
        }