public void SetMachineInSoldStateWhenTurnCrank() { var machine = new TestGumballMachine(); var state = new HasQuarterState(machine); state.TurnCrank(); Assert.AreEqual(machine.State, State.Sold); }
public void SetMachineInHasQuarterStateWhenInsertQuarter() { var machine = new TestGumballMachine(); var state = new NoQuarterState(machine); state.InsertQuarter(); Assert.AreEqual(machine.GetQuartersController().GetQuartersCount(), (uint)1); Assert.AreEqual(machine.State, State.HasQuarter); }
public void SetMachineInNoQuarterStateWhenRefillItWithMoreThan0Balls() { var machine = new TestGumballMachine(); var state = new SoldOutState(machine); state.Refill(1); Assert.AreEqual(machine.GetBallCount(), (uint)1); Assert.AreEqual(machine.State, State.NoQuarter); }
public void StayMachineInSoldOutStateWhenRefillItWith0Balls() { var machine = new TestGumballMachine(); var state = new SoldOutState(machine); machine.SetSoldOutState(); state.Refill(0); Assert.AreEqual(machine.GetBallCount(), (uint)0); Assert.AreEqual(machine.State, State.SoldOut); }
public void SetMachineInNoQuarterStateWhenEjectQuarters() { var machine = new TestGumballMachine(); machine.GetQuartersController().InsertQuarter(); var state = new HasQuarterState(machine); state.EjectQuarters(); Assert.IsFalse(machine.GetQuartersController().HasQuarters()); Assert.AreEqual(machine.State, State.NoQuarter); }
public void StayMachineInHasQuarterStateWhenInsertQuarter() { var machine = new TestGumballMachine(); machine.SetHasQuarterState(); machine.GetQuartersController().InsertQuarter(); var state = new HasQuarterState(machine); state.InsertQuarter(); Assert.IsTrue(machine.GetQuartersController().HasQuarters()); Assert.AreEqual(machine.GetQuartersController().GetQuartersCount(), (uint)2); Assert.AreEqual(machine.State, State.HasQuarter); }
public void SetGumballMachineInSoldOutStateIfDispenseWith1BallAnd1QuarterInMachine() { var machine = new TestGumballMachine(); uint ballsAmount = 1; machine.GetQuartersController().InsertQuarter(); machine.BallsCount = ballsAmount; var state = new SoldState(machine); state.Dispense(); Assert.AreEqual((uint)0, machine.BallsCount); Assert.IsFalse(machine.GetQuartersController().HasQuarters()); Assert.AreEqual(machine.State, State.SoldOut); }
public void SetGumballMachineInHasQuarterStateIfDispenseWithMoreThan1BallsAndMoreThan1QuarterInMachine() { var machine = new TestGumballMachine(); machine.GetQuartersController().InsertQuarter(); machine.GetQuartersController().InsertQuarter(); uint ballsAmount = 2; machine.BallsCount = ballsAmount; var state = new SoldState(machine); state.Dispense(); Assert.IsTrue(machine.GetQuartersController().HasQuarters()); Assert.AreEqual(machine.GetQuartersController().GetQuartersCount(), (uint)1); Assert.AreEqual((uint)1, machine.BallsCount); Assert.AreEqual(machine.State, State.HasQuarter); }
public void StayMachineInNoQuarterStateWhenRefillIt() { { var machine = new TestGumballMachine(); machine.SetNoQuarterState(); machine.BallsCount = 1; var state = new NoQuarterState(machine); state.Refill(1); Assert.AreEqual(machine.GetBallCount(), (uint)2); Assert.AreEqual(machine.State, State.NoQuarter); } { var machine = new TestGumballMachine(); machine.SetNoQuarterState(); machine.BallsCount = 1; var state = new NoQuarterState(machine); state.Refill(0); Assert.AreEqual(machine.GetBallCount(), (uint)1); Assert.AreEqual(machine.State, State.NoQuarter); } }
public void CantRefillMachine() { { var machine = new TestGumballMachine(); machine.SetSoldState(); machine.BallsCount = 1; var state = new SoldState(machine); state.Refill(1); Assert.AreEqual(machine.GetBallCount(), (uint)1); Assert.AreEqual(machine.State, State.Sold); } { var machine = new TestGumballMachine(); machine.SetSoldState(); machine.BallsCount = 1; var state = new SoldState(machine); state.Refill(0); Assert.AreEqual(machine.GetBallCount(), (uint)1); Assert.AreEqual(machine.State, State.Sold); } }