Пример #1
0
        public void Filtering_Navigation()
        {
            var console = new TestConsole();

            console.AddUserInputWithActionBefore("e", () => AssertHelper.Equal(@"Pick an option:
>> [0] One
   [1] Two
   [2] Close
   [3] Exit
Filter: ", console.ToString()));

            console.AddUserInputWithActionBefore(ConsoleKey.DownArrow, () => AssertHelper.Equal(@"Pick an option:
>> [0] One
   [2] Close
   [3] Exit
Filter: e", console.ToString()));

            console.AddUserInputWithActionBefore(ConsoleKey.UpArrow, () => AssertHelper.Equal(@"Pick an option:
   [0] One
>> [2] Close
   [3] Exit
Filter: e", console.ToString()));

            console.AddUserInputWithActionBefore(ConsoleKey.UpArrow, () => AssertHelper.Equal(@"Pick an option:
>> [0] One
   [2] Close
   [3] Exit
Filter: e", console.ToString()));

            console.AddUserInputWithActionBefore(ConsoleKey.UpArrow, () => AssertHelper.Equal(@"Pick an option:
   [0] One
   [2] Close
>> [3] Exit
Filter: e", console.ToString()));

            console.AddUserInputWithActionBefore(ConsoleKey.Enter, () => AssertHelper.Equal(@"Pick an option:
   [0] One
>> [2] Close
   [3] Exit
Filter: e", console.ToString()));

            var submenu = new ConsoleMenu {
                Console = console
            }
            .Add("Close", ConsoleMenu.Close)
            .Configure(m =>
            {
                ConfigHelper.BaseTestConfiguration(m, console);
                m.EnableFilter = true;
            });

            var menu = new ConsoleMenu()
            {
                Console = console
            }
            .Add("One", () => { })
            .Add("Two", submenu.Show)
            .Add("Close", ConsoleMenu.Close)
            .Add("Exit", () => Environment.Exit(0))
            .Configure(m =>
            {
                ConfigHelper.BaseTestConfiguration(m, console);
                m.EnableFilter = true;
            });

            menu.Show();

            AssertHelper.Equal(@"Pick an option:
   [0] One
>> [2] Close
   [3] Exit
Filter: e
", console.ToString());
        }