Example #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());
        }
Example #2
0
        private void State_Click(object sender, RoutedEventArgs e)
        {
            var gumballMachine = new GumballMachine("2004", 5);

            Console.WriteLine(gumballMachine);
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();

            Console.WriteLine();
            Console.WriteLine(gumballMachine);
            gumballMachine.InsertQuarter();
            gumballMachine.EjectQuarter();
            gumballMachine.TurnCrank();

            Console.WriteLine();
            Console.WriteLine(gumballMachine);
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.EjectQuarter();

            Console.WriteLine();
            Console.WriteLine(gumballMachine);
            gumballMachine.InsertQuarter();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();

            Console.WriteLine();
            Console.WriteLine(gumballMachine);
            gumballMachine.Fill(1);
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
        }