public void CanReleaseBallIfGumballsCountMoreThan0() { var gM = new GumballMachineContext(1); Assert.AreEqual(gM.GetBallCount(), (uint)1); gM.ReleaseBall(); Assert.AreEqual(gM.GetBallCount(), (uint)0); }
public void ReleaseBall_WithBalls_ShouldReleaseOneBall() { var gm = new GumballMachineContext(2); gm.ReleaseBall(); Assert.AreEqual((uint)1, gm.GetBallCount()); }
public void ReleaseBall_WithNoBalls_ShouldNotReleaseBall() { var gm = new GumballMachineContext(0); gm.ReleaseBall(); Assert.AreEqual((uint)0, gm.GetBallCount()); }
public void EjectQuarter_InSoldOutState_ShouldNotChangeGMState() { var gm = new GumballMachineContext(0); gm.EjectQuarter(); Assert.AreEqual((uint)0, gm.GetBallCount()); Assert.AreEqual(GetGumballMachineString(0, "sold out"), gm.ToString()); }
public void TurnCrank_InNoQuarterState_ShouldNotChangeGMState() { var gm = new GumballMachineContext(5); gm.TurnCrank(); Assert.AreEqual((uint)5, gm.GetBallCount()); Assert.AreEqual(GetGumballMachineString(5, "waiting for quarter"), gm.ToString()); }
public void InsertQuarter_InNoQuarterState_ShouldChangeGMStateToHasQuarterState() { var gm = new GumballMachineContext(5); gm.InsertQuarter(); Assert.AreEqual((uint)5, gm.GetBallCount()); Assert.AreEqual(GetGumballMachineString(5, "waiting for turn of crank"), gm.ToString()); }
public void TurnCrank_WithBalls_InHasQuarterState_ShouldChangeGMStateToNoQuarterState() { var gm = new GumballMachineContext(2); gm.InsertQuarter(); gm.TurnCrank(); Assert.AreEqual((uint)1, gm.GetBallCount()); Assert.AreEqual(GetGumballMachineString(1, "waiting for quarter"), gm.ToString()); }
public void TurnCrank_WithOneBall_InHasQuarterState_ShouldChangeGMStateToSoldOutState() { var gm = new GumballMachineContext(1); gm.InsertQuarter(); gm.TurnCrank(); Assert.AreEqual((uint)0, gm.GetBallCount()); Assert.AreEqual(GetGumballMachineString(0, "sold out"), gm.ToString()); }
public void CanCreateGumballMachineWithoutAddingGumballsInSoldOutState() { var strState = "sold out"; uint gumballs = 0; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(); Assert.AreEqual(gM.GetBallCount(), (uint)0); Assert.AreEqual(gM.ToString(), testStr); }
public void CanCreateGumballMachineWithAdding5GumballsInNoQuarterState() { var strState = "waiting for quarter"; uint gumballs = 5; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(5); Assert.AreEqual(gM.GetBallCount(), (uint)5); Assert.AreEqual(gM.ToString(), testStr); }
public void CantEjectQuartersInSoldOutState() { var strState = "sold out"; uint gumballs = 0; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(); gM.EjectQuarters(); Assert.AreEqual(gM.GetBallCount(), gumballs); Assert.AreEqual(gM.ToString(), testStr); }
public void CanRefillGumballMachineWithAddingMoreThan0GumballsInSoldOutStateAndMoveToNoQuarterState() { var strState = "waiting for quarter"; uint gumballs = 1; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(); gM.Refill(gumballs); Assert.AreEqual(gM.GetBallCount(), gumballs); Assert.AreEqual(gM.ToString(), testStr); }
public void CanRefillGumballMachineWithAdding0GumballsInSoldOutState() { var strState = "sold out"; uint gumballs = 0; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(gumballs); gM.Refill(0); Assert.AreEqual(gM.GetBallCount(), gumballs); Assert.AreEqual(gM.ToString(), testStr); }
public void CanSetSoldState() { var strState = "delivering a gumball"; uint gumballs = 0; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(); gM.SetSoldState(); Assert.AreEqual(gM.GetBallCount(), (uint)0); Assert.AreEqual(gM.ToString(), testStr); }
public void CanSetHasQuarterState() { var strState = "waiting for turn of crank"; uint gumballs = 0; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(); gM.SetHasQuarterState(); Assert.AreEqual(gM.GetBallCount(), (uint)0); Assert.AreEqual(gM.ToString(), testStr); }
public void CanSetSoldOutState() { var strState = "sold out"; uint gumballs = 1; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(1); gM.SetSoldOutState(); Assert.AreEqual(gM.GetBallCount(), (uint)1); Assert.AreEqual(gM.ToString(), testStr); }
public void CanInsertQuarterInGumballInNoQuarterStateAndGoToQuarterState() { var strState = "waiting for turn of crank"; uint gumballs = 5; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(5); gM.InsertQuarter(); Assert.AreEqual(gM.GetBallCount(), (uint)5); Assert.AreEqual(gM.ToString(), testStr); }
public void Refill_InSoldOutState_ShouldRefill() { var gm = new GumballMachineContext(0); Assert.AreEqual(GetGumballMachineString(0, "sold out"), gm.ToString()); sb.Remove(0, sb.Length); gm.Refill(2); Assert.AreEqual((uint)2, gm.GetBallCount()); Assert.AreEqual("Gumballs refilled. Gumballs count: 2\r\n", sw.ToString()); }
public void CanTurnCrankInHasQuarterStateAndGoToNoQuarterStateIfAmountOfGumballsIs1BeforeTurningCrank() { var strState = "sold out"; uint gumballs = 0; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(1); gM.InsertQuarter(); gM.TurnCrank(); Assert.AreEqual(gM.GetBallCount(), (uint)0); Assert.AreEqual(gM.ToString(), testStr); }
public void CanTurnCrankInHasQuarterStateAndGoToNoQuarterStateIfAmountOfGumballsBeforeTurningCrankMoreThan1() { var strState = "waiting for quarter"; uint gumballs = 1; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(2); gM.InsertQuarter(); gM.TurnCrank(); Assert.AreEqual(gM.GetBallCount(), (uint)1); Assert.AreEqual(gM.ToString(), testStr); }
public void CanInsertQuarterTurnCrankInHasQuarterStateAndDespenseBallAndMovetoNoQuarterStateIfBallsMoreThan0() { var strState = "waiting for quarter"; uint gumballs = 1; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(2); gM.InsertQuarter(); gM.TurnCrank(); Assert.AreEqual(gM.GetBallCount(), gumballs); Assert.AreEqual(gM.ToString(), testStr); }
public void CanInsertQuarterTurnCrankInHasQuarterStateAndDespenseBallAndMovetoSoldOutStateIfBalls0() { var strState = "sold out"; uint gumballs = 0; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(1); gM.InsertQuarter(); gM.TurnCrank(); Assert.AreEqual(gM.GetBallCount(), gumballs); Assert.AreEqual(gM.ToString(), testStr); }
public void Refill_InNoQuarterState_ShouldRefill() { var gm = new GumballMachineContext(2); Assert.AreEqual(GetGumballMachineString(2, "waiting for quarter"), gm.ToString()); sb.Remove(0, sb.Length); gm.Refill(2); Assert.AreEqual((uint)4, gm.GetBallCount()); Assert.AreEqual("Gumballs refilled. Gumballs count: 4\r\n", sw.ToString()); }
public void CanRefillMachineInHasQuarterState() { var strState = "waiting for turn of crank"; uint gumballs = 2; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(1); gM.InsertQuarter(); gM.Refill(1); Assert.AreEqual(gM.GetBallCount(), gumballs); Assert.AreEqual(gM.ToString(), testStr); }
public void Refill_InSoldState_ShouldNotRefill() { var gm = new GumballMachineContext(5); gm.SetSoldState(); Assert.AreEqual(GetGumballMachineString(5, "delivering a gumball"), gm.ToString()); sb.Remove(0, sb.Length); gm.Refill(2); Assert.AreEqual((uint)5, gm.GetBallCount()); Assert.AreEqual("Can't refill gumballs when machine is giving you a gumball\r\n", sw.ToString()); }
public void CanEjectAllQuartersInHasQuarterStateAndMoveToNoQuarterState() { var strState = "waiting for quarter"; uint gumballs = 1; var testStr = GetGumballMachineTestParsedString(gumballs, strState); var gM = new GumballMachineContext(gumballs); gM.InsertQuarter(); gM.InsertQuarter(); gM.EjectQuarters(); Assert.AreEqual(gM.GetBallCount(), gumballs); Assert.AreEqual(gM.ToString(), testStr); }
public void Refill_InHasQuarterState_ShouldRefill_And_NotLostQuarters() { var gm = new GumballMachineContext(2); gm.InsertQuarter(); gm.InsertQuarter(); Assert.AreEqual(GetGumballMachineString(2, "waiting for turn of crank"), gm.ToString()); sb.Remove(0, sb.Length); gm.Refill(2); Assert.AreEqual((uint)4, gm.GetBallCount()); Assert.AreEqual((uint)2, gm.GetQuartersCount()); Assert.AreEqual("Gumballs refilled. Gumballs count: 4\r\n", sw.ToString()); }
public void TurnCrank_And_InsertExtraQuarters_ShouldNotChangeGMState() { var gm = new GumballMachineContext(5); gm.InsertQuarter(); gm.InsertQuarter(); gm.InsertQuarter(); Assert.AreEqual((uint)3, gm.GetQuartersCount()); gm.TurnCrank(); gm.TurnCrank(); Assert.AreEqual((uint)1, gm.GetQuartersCount()); Assert.AreEqual((uint)3, gm.GetBallCount()); gm.InsertQuarter(); Assert.AreEqual((uint)2, gm.GetQuartersCount()); Assert.AreEqual(GetGumballMachineString(3, "waiting for turn of crank"), gm.ToString()); }
public void GetBallCount_ShouldReturnBallCount() { var gm = new GumballMachineContext(5); Assert.AreEqual((uint)5, gm.GetBallCount()); }
public void CanGetBallsCount() { var gM = new GumballMachineContext(); Assert.AreEqual(gM.GetBallCount(), (uint)0); }