public void ChangingPaymentTensShouldNotifyPaymentTens()
        {
            Order            order = new Order();
            BriarheartBurger bb    = new BriarheartBurger();

            order.Add(bb);
            CashRegisterViewModel crv = new CashRegisterViewModel(order, null);

            Assert.PropertyChanged(crv, "PaymentTens", () =>
            {
                crv.PaymentTens++;
            });
        }
        public void ShouldGetAmountOwedDisplay(double amountOwed)
        {
            Order                 order = new Order();
            BriarheartBurger      bb    = new BriarheartBurger();
            MarkarthMilk          mm    = new MarkarthMilk();
            DragonbornWaffleFries dwf   = new DragonbornWaffleFries();

            order.Add(bb);
            order.Add(mm);
            order.Add(dwf);
            CashRegisterViewModel crv = new CashRegisterViewModel(order, null);

            Assert.Equal(amountOwed, Math.Round(crv.AmountOwedDisplay, 2));
        }
        public void FinalizeSaleShouldUpdateRegister(int payment)
        {
            CashDrawer.ResetDrawer();
            Order                 order = new Order();
            BriarheartBurger      bb    = new BriarheartBurger();
            MarkarthMilk          mm    = new MarkarthMilk();
            DragonbornWaffleFries dwf   = new DragonbornWaffleFries();

            order.Add(bb);
            order.Add(mm);
            order.Add(dwf);
            CashRegisterViewModel crv = new CashRegisterViewModel(order, null);

            crv.PaymentHundreds = payment;
            crv.ChangeOwedToCustomer();
            crv.FinializeSale();

            Assert.Equal(1, crv.RegisterHundreds);
            Assert.Equal(0, crv.RegisterFifties);
            Assert.Equal(1, crv.RegisterTwenties);
            Assert.Equal(9, crv.RegisterTens);
            Assert.Equal(4, crv.RegisterFives);
            Assert.Equal(0, crv.RegisterTwos);
            Assert.Equal(19, crv.RegisterOnes);
            Assert.Equal(0, crv.RegisterDollarCoin);
            Assert.Equal(0, crv.RegisterHalfDollars);
            Assert.Equal(79, crv.RegisterQuarters);
            Assert.Equal(100, crv.RegisterDimes);
            Assert.Equal(80, crv.RegisterNickels);
            Assert.Equal(198, crv.RegisterPennies);
            Assert.Equal(0, crv.PaymentHundreds);
            Assert.Equal(0, crv.PaymentFifties);
            Assert.Equal(0, crv.PaymentTwenites);
            Assert.Equal(0, crv.PaymentTens);
            Assert.Equal(0, crv.PaymentFives);
            Assert.Equal(0, crv.PaymentTwos);
            Assert.Equal(0, crv.PaymentOnes);
            Assert.Equal(0, crv.PaymentDollarCoins);
            Assert.Equal(0, crv.PaymentHalfDollars);
            Assert.Equal(0, crv.PaymentQuarters);
            Assert.Equal(0, crv.PaymentDimes);
            Assert.Equal(0, crv.PaymentNickels);
            Assert.Equal(0, crv.PaymentPennies);
        }
        public void ShouldBeACashRegisterViewModel()
        {
            CashRegisterViewModel crv = new CashRegisterViewModel(null, null);

            Assert.IsAssignableFrom <CashRegisterViewModel>(crv);
        }