public void DespenseTest() { var stringWriter = new StringWriter(); var result = new StringWriter(); var gumballMachine = new GumballMachineContext(2, stringWriter); var gumballMachineStateString = $"(Mighty Gumball, Inc.C# - enabled Standing Gumball Model #2019 (with state)Inventory:" + $" { 2 } gumball{ ( 2 != 1 ? "s" : "" ) } " + $"Machine is { BaseConstants.TO_STRING_NO_QUARTER_STATE })"; var noQuarterState = new NoQuarterState(gumballMachine, stringWriter); noQuarterState.Dispense(); result.WriteLine(BaseConstants.DISPENSE_NO_QUARTER_STATE); Assert.AreEqual(result.ToString(), stringWriter.ToString()); Assert.AreEqual(gumballMachineStateString, gumballMachine.ToString()); }