Example #1
0
        public static int RunMenu(IList <Pair <string, Func <int> > > menu, IEnumerator <char> input = null)
        {
            var reader     = input ?? ConsoleChars();
            int errorCount = 0;

            for (;;)
            {
                Console.WriteLine();
                Console.WriteLine("What do you want to do? (Esc to quit)");
                for (int i = 0; i < menu.Count; i++)
                {
                    Console.WriteLine(PrintHelpers.HexDigitChar(i + 1) + ". " + menu[i].Key);
                }
                Console.WriteLine("Space. Run all tests");

                if (!reader.MoveNext())
                {
                    break;
                }

                char c = reader.Current;
                if (c == ' ')
                {
                    errorCount = 0;
                    for (int i = 0; i < menu.Count; i++)
                    {
                        Console.WriteLine();
                        ConsoleMessageSink.WriteColoredMessage(ConsoleColor.White, i + 1, menu[i].Key);
                        errorCount += menu[i].Value();
                    }
                    if (errorCount == 0)
                    {
                        ConsoleMessageSink.WriteColoredMessage(ConsoleColor.White, null,
                                                               "All test(s) passed (except known failures, if any).");
                    }
                    else
                    {
                        ConsoleMessageSink.WriteColoredMessage(ConsoleColor.Red, null,
                                                               "{0} test(s) unexpectedly failed in total.".Localized(errorCount));
                    }
                }
                else
                {
                    int i = ParseHelpers.HexDigitValue(c);
                    if (i > 0 && i <= menu.Count)
                    {
                        errorCount += menu[i - 1].Value();
                    }
                }
            }
            return(errorCount);
        }
Example #2
0
        public static int RunMenu(List <Pair <string, Func <int> > > menu)
        {
            int errorCount = 0;

            while (true)
            {
                Console.WriteLine();
                Console.WriteLine("What do you want to do? (Esc to quit)");
                for (int i = 0; i < menu.Count; i++)
                {
                    Console.WriteLine(PrintHelpers.HexDigitChar(i + 1) + ". " + menu[i].Key);
                }
                Console.WriteLine("Space. Run all tests");

                char c = default(char);
                for (ConsoleKeyInfo k; (k = Console.ReadKey(true)).Key != ConsoleKey.Enter;)
                {
                    if (k.Key == ConsoleKey.Escape)
                    {
                        return(errorCount);
                    }
                    else
                    {
                        c = k.KeyChar;
                        break;
                    }
                }

                if (c == ' ')
                {
                    errorCount += RunAllTests(menu);
                }
                else
                {
                    int i = ParseHelpers.HexDigitValue(c);
                    if (i > 0 && i <= menu.Count)
                    {
                        errorCount += menu[i - 1].Value();
                    }
                }
            }
        }
Example #3
0
        public static int RunMenu(IList <Pair <string, Func <int> > > menu, IEnumerable <char> input)
        {
            var reader     = (input ?? ConsoleChars()).GetEnumerator();
            int errorCount = 0;

            for (;;)
            {
                Console.WriteLine();
                Console.WriteLine("What do you want to do? (Esc to quit)");
                for (int i = 0; i < menu.Count; i++)
                {
                    Console.WriteLine(PrintHelpers.HexDigitChar(i + 1) + ". " + menu[i].Key);
                }
                Console.WriteLine("Space. Run all tests");

                if (!reader.MoveNext())
                {
                    break;
                }

                char c = reader.Current;
                if (c == ' ')
                {
                    for (int i = 0; i < menu.Count; i++)
                    {
                        Console.WriteLine();
                        ConsoleMessageSink.WriteColoredMessage(ConsoleColor.White, i + 1, menu[i].Key);
                        errorCount += menu[i].Value();
                    }
                }
                else
                {
                    int i = ParseHelpers.HexDigitValue(c);
                    if (i > 0 && i <= menu.Count)
                    {
                        errorCount += menu[i - 1].Value();
                    }
                }
            }
            return(errorCount);
        }
Example #4
0
        public static void RunMenu(IList <Pair <string, Action> > menu, IEnumerator <char> input = null)
        {
            var reader = input ?? ConsoleChars();

            for (;;)
            {
                Console.WriteLine();
                Console.WriteLine("What do you want to run? (Esc to quit)");
                for (int i = 0; i < menu.Count; i++)
                {
                    Console.WriteLine(PrintHelpers.HexDigitChar(i + 1) + ". " + menu[i].Key);
                }
                Console.WriteLine("Space. Run all");

                if (!reader.MoveNext())
                {
                    break;
                }

                char c = reader.Current;
                if (c == ' ')
                {
                    for (int i = 0; i < menu.Count; i++)
                    {
                        RunOne(menu, i);
                    }
                }
                else
                {
                    int i = ParseHelpers.HexDigitValue(c);
                    if (i > 0 && i <= menu.Count)
                    {
                        RunOne(menu, i - 1);
                    }
                }
            }
        }