public void ReFillWithSomeQuartersTest() { var stringWriter = new StringWriter(); var result = new StringWriter(); var gumballMachine = new GumballMachineContext(1, stringWriter); var gumballMachineStateString = $"(Mighty Gumball, Inc.C# - enabled Standing Gumball Model #2019 (with state)Inventory:" + $" { 10 } gumball{ ( 10 != 1 ? "s" : "" ) }" + $" { 1 } quarter{ ( 1 != 1 ? "s" : "" ) } " + $"Machine is { BaseConstants.TO_STRING_HAS_QUARTER_STATE })"; var soldOutState = new SoldOutState(gumballMachine, stringWriter); gumballMachine.InsertQuarter(); gumballMachine.InsertQuarter(); gumballMachine.TurnCrank(); soldOutState.ReFill(10); result.WriteLine(BaseConstants.INSERT_QUARTER_NO_QUARTER_STATE); result.WriteLine(MultiGumbalMachineConstants.GetInsertQuarterHasQuarterStateConst(2)); result.WriteLine(MultiGumbalMachineConstants.GetTurnCrankHasQuarterStateConst(1)); result.WriteLine(BaseConstants.RELEASE_BALL); result.WriteLine(BaseConstants.DISPENSE_SOLD_STATE); result.WriteLine(MultiGumbalMachineConstants.GetReFillSoldOutStateConst(10)); Assert.AreEqual(result.ToString(), stringWriter.ToString()); Assert.AreEqual(gumballMachineStateString, gumballMachine.ToString()); }
public void ReFillWithSomeBallsTest() { var stringWriter = new StringWriter(); var result = new StringWriter(); var gumballMachine = new GumballMachineContext(0, stringWriter); var gumballMachineStateString = $"(Mighty Gumball, Inc.C# - enabled Standing Gumball Model #2019 (with state)Inventory:" + $" { 10 } gumball{ ( 10 != 1 ? "s" : "" ) }" + $" { 0 } quarter{ ( 0 != 1 ? "s" : "" ) } " + $"Machine is { BaseConstants.TO_STRING_NO_QUARTER_STATE })"; var soldOutState = new SoldOutState(gumballMachine, stringWriter); soldOutState.ReFill(10); result.WriteLine(MultiGumbalMachineConstants.GetReFillSoldOutStateConst(10)); Assert.AreEqual(result.ToString(), stringWriter.ToString()); Assert.AreEqual(gumballMachineStateString, gumballMachine.ToString()); }