public void TestGumballMachine()
        {
            HeadFirstDesignPatterns.State.GumballMachine.GumballMachine gumballMachine = new HeadFirstDesignPatterns.State.GumballMachine.GumballMachine(5);
            StringBuilder gumballMachineOutput = new StringBuilder();

            gumballMachineOutput.Append(gumballMachine.MachineStateHeader() + "\n");

            gumballMachineOutput.Append(gumballMachine.InsertQuarter());
            gumballMachineOutput.Append(gumballMachine.TurnCrank() + "\n");

            gumballMachineOutput.Append(gumballMachine.MachineStateHeader() + "\n");

            gumballMachineOutput.Append(gumballMachine.InsertQuarter());
            gumballMachineOutput.Append(gumballMachine.TurnCrank());
            gumballMachineOutput.Append(gumballMachine.InsertQuarter());
            gumballMachineOutput.Append(gumballMachine.TurnCrank() + "\n");

            gumballMachineOutput.Append(gumballMachine.MachineStateHeader() + "\n");

            gumballMachineOutput.Append(gumballMachine.Refill(5) + "\n");

            gumballMachineOutput.Append(gumballMachine.MachineStateHeader() + "\n");



            //Because of the System.Random object, there is no way to know
            //the outcome of the turn of the crank. Therefore, I am writing
            //to the console. Use the Console.Out tab of NUnit
            Console.WriteLine(gumballMachineOutput.ToString());
        }
        public SoldOutState(GumballMachine gumballMachine)

        {

            this.gumballMachine = gumballMachine;

        }
        public void TestGumballMachine()
        {
            HeadFirstDesignPatterns.State.GumballMachine.GumballMachine gumballMachine = new HeadFirstDesignPatterns.State.GumballMachine.GumballMachine(5);
            StringBuilder gumballMachineOutput = new StringBuilder();

            gumballMachineOutput.Append(gumballMachine.MachineStateHeader() + "\n");

            gumballMachineOutput.Append(gumballMachine.InsertQuarter());
            gumballMachineOutput.Append(gumballMachine.TurnCrank() + "\n");

            gumballMachineOutput.Append(gumballMachine.MachineStateHeader() + "\n");

            gumballMachineOutput.Append(gumballMachine.InsertQuarter());
            gumballMachineOutput.Append(gumballMachine.TurnCrank());
            gumballMachineOutput.Append(gumballMachine.InsertQuarter());
            gumballMachineOutput.Append(gumballMachine.TurnCrank() + "\n");

            gumballMachineOutput.Append(gumballMachine.MachineStateHeader() + "\n");

            gumballMachineOutput.Append(gumballMachine.Refill(5) + "\n");

            gumballMachineOutput.Append(gumballMachine.MachineStateHeader() + "\n");

            //Because of the System.Random object, there is no way to know
            //the outcome of the turn of the crank. Therefore, I am writing
            //to the console. Use the Console.Out tab of NUnit
            Console.WriteLine(gumballMachineOutput.ToString());
        }
        public NoQuarterState(GumballMachine gumballMachine)

        {

            this.gumballMachine = gumballMachine;

            hasQuarterState = new HasQuarterState(gumballMachine);

        }
        //When I was using the winnerState and soldState instance variables I was

        //getting "An unhandled exception of type 'System.StackOverflowException' 

        //occurred in mscorlib.dll" error?

//        State winnerState;

//        State soldState;

        #endregion//Members



        #region Constructor

        public HasQuarterState(GumballMachine gumballMachine)

        {

            this.gumballMachine = gumballMachine;

//            winnerState = new WinnerState(gumballMachine);

//            soldState = new SoldState(gumballMachine);

        }
        public WinnerState(GumballMachine gumballMachine)

        {

            this.gumballMachine = gumballMachine;

            soldOutState = new SoldOutState(gumballMachine);

            noQuarterState = new NoQuarterState(gumballMachine);

        }
 public SoldState(GumballMachine gumballMachine)
 {
     this.gumballMachine = gumballMachine;
     noQuarterState      = new NoQuarterState(gumballMachine);
     soldOutState        = new SoldOutState(gumballMachine);
 }
Exemple #8
0
        public SoldOutState(GumballMachine gumballMachine)

        {
            this.gumballMachine = gumballMachine;
        }