Ejemplo n.º 1
0
        public void WhenAddingCash_ThenItOnlyAccepts_100_50_20_10_5_1_050_025(decimal expected)
        {
            var machine = new VendingMachine();

            machine.AddCash(expected);

            Assert.AreEqual(expected, machine.GetBalance());
        }
Ejemplo n.º 2
0
        public void WhenUserCancelledRequest_ThenItShouldReturnRefundAndResetMachine()
        {
            var           machine = new VendingMachine();
            const decimal amount  = 100.0M;

            machine.AddCash(amount);

            var result = machine.Refund();

            Assert.AreEqual(amount, result);
            Assert.AreEqual(0, machine.GetBalance());
            Assert.IsEmpty(machine.GetSelectedProduct());
        }
Ejemplo n.º 3
0
        public void WhenUserPurchases_ThenItShouldReturnTheProductAndChange(string product, decimal cash1, decimal cash2, decimal change)
        {
            var machine = new  VendingMachine();

            machine.AddCash(cash1);
            machine.AddCash(cash2);
            machine.SelectProduct(product);

            var(item1, item2) = machine.Purchase();

            Assert.AreEqual(change, item2);
            Assert.AreEqual(product, item1);
            Assert.AreEqual(0, machine.GetBalance());
            Assert.IsEmpty(machine.GetSelectedProduct());
        }
Ejemplo n.º 4
0
        public void WhenVendingMachineStarts_ThenBalanceShouldBeZero()
        {
            var machine = new VendingMachine();

            Assert.AreEqual(0, machine.GetBalance());
        }