public static void Test1()
        {
            var remote  = new SimpleRemoteControl();
            var light   = new Light("");
            var lightOn = new LightOnCommand(light);

            remote.SetCommand(lightOn);
            remote.ButtonWasPressed();

            var garageDoor     = new GarageDoor();
            var garageDoorOpen = new GarageDoorOpenCommand(garageDoor);

            remote.SetCommand(garageDoorOpen);
            remote.ButtonWasPressed();
        }
        public static void Test3Undo()
        {
            var remote                = new RemoteControl();
            var livingRoomLight       = new Light("Living room");
            var livingRoomLightOnCmd  = new LightOnCommand(livingRoomLight);
            var livingRoomLightOffCmd = new LightOffCommand(livingRoomLight);

            remote.SetCommand(0, livingRoomLightOnCmd, livingRoomLightOffCmd);

            remote.OnButtonPushed(0);
            remote.OffButtonPushed(0);
            Console.WriteLine(remote.ToString());
            remote.UndoButtonPushed();

            remote.OffButtonPushed(0);
            remote.OnButtonPushed(0);
            Console.WriteLine(remote.ToString());
            remote.UndoButtonPushed();
        }