예제 #1
0
        private static void TestState()
        {
            GumballMachine gumballMachine = new GumballMachine(1);

            Console.WriteLine("--Chamando todos os métodos que não mudam o estado do estado atual: {0}", gumballMachine.GetState());
            gumballMachine.EjectQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.ReleaseGum();
            Console.WriteLine("--Inserindo a moeda para alterar o estado.");
            gumballMachine.InsertQuarter();
            Console.WriteLine("--{0} gomas.", gumballMachine.Count);
            Console.WriteLine("-----------------------------------------");

            Console.WriteLine("--Chamando todos os métodos que não mudam o estado do estado atual: {0}", gumballMachine.GetState());
            gumballMachine.InsertQuarter();
            gumballMachine.ReleaseGum();
            Console.WriteLine("--Ejetando a moeda para alterar o estado.");
            gumballMachine.EjectQuarter();
            Console.WriteLine("--{0} gomas.", gumballMachine.Count);
            Console.WriteLine("-----------------------------------------");

            Console.WriteLine("--Chamando todos os métodos que não mudam o estado do estado atual: {0}", gumballMachine.GetState());
            gumballMachine.EjectQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.ReleaseGum();
            Console.WriteLine("--Inserindo novamente a moeda para alterar o estado.");
            gumballMachine.InsertQuarter();
            Console.WriteLine("--{0} gomas.", gumballMachine.Count);
            Console.WriteLine("-----------------------------------------");

            Console.WriteLine("--Chamando todos os métodos que não mudam o estado do estado atual: {0}", gumballMachine.GetState());
            gumballMachine.InsertQuarter();
            gumballMachine.ReleaseGum();
            Console.WriteLine("--Virando a engrenagem.");
            gumballMachine.TurnCrank();
            Console.WriteLine("--{0} gomas.", gumballMachine.Count);
            Console.WriteLine("-----------------------------------------");

            Console.WriteLine("--Chamando todos os métodos que não mudam o estado do estado atual: {0}", gumballMachine.GetState());
            gumballMachine.InsertQuarter();
            gumballMachine.EjectQuarter();
            gumballMachine.TurnCrank();
            Console.WriteLine("--Dispensando a goma.");
            gumballMachine.ReleaseGum();
            Console.WriteLine("--{0} gomas.", gumballMachine.Count);
            Console.WriteLine("-----------------------------------------");

            Console.WriteLine("--Chamando todos os métodos que não mudam o estado do estado atual: {0}", gumballMachine.GetState());
            gumballMachine.EjectQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.ReleaseGum();
            gumballMachine.EjectQuarter();
            Console.WriteLine("--Repondo as gomas.");
            gumballMachine.Fill();
            Console.WriteLine("--{0} gomas.", gumballMachine.Count);
            Console.WriteLine("-----------------------------------------");

            Console.WriteLine("--Estado atual: {0}", gumballMachine.GetState());
        }