Example #1
0
        public void SetMachineInHasQuarterStateWhenInsertQuarter()
        {
            var machine = new TestGumballMachine();
            var state   = new NoQuarterState(machine);

            state.InsertQuarter();
            Assert.AreEqual((Enums.State)machine.State, Enums.State.HasQuarter);
        }
Example #2
0
        public void SetMachineInSoldStateWhenTurnCrank()
        {
            var machine = new TestGumballMachine();
            var state   = new HasQuarterState(machine);

            state.TurnCrank();
            Assert.AreEqual((Enums.State)machine.State, Enums.State.Sold);
        }
Example #3
0
        public void SetGumballMachineInNoQuarterStateIfCallDispenseWithMoreThan1BallsInMachine()
        {
            var  machine     = new TestGumballMachine();
            uint ballsAmount = 2;

            machine.BallsCount = ballsAmount;
            var state = new SoldState(machine);

            state.Dispense();
            Assert.AreEqual((uint)1, machine.BallsCount);
            Assert.AreEqual((Enums.State)machine.State, Enums.State.NoQuarter);
        }
Example #4
0
        public void SetGumballMachineInSoldOutStateIfCallDispenseWith1BallInMachine()
        {
            var  machine     = new TestGumballMachine();
            uint ballsAmount = 1;

            machine.BallsCount = ballsAmount;
            var state = new SoldState(machine);

            state.Dispense();
            Assert.AreEqual((uint)0, machine.BallsCount);
            Assert.AreEqual((Enums.State)machine.State, Enums.State.SoldOut);
        }