public static void Single()
        {
            var provider = new CommandLineOptionsProvider(new[] { new Option("a") });

            provider.Load();

            provider
            .GetChildKeys(Enumerable.Empty <string>(), null)
            .Should()
            .BeEquivalentTo("a");
        }
        public static void Operands()
        {
            var provider = new CommandLineOptionsProvider(new[] { new Operand("a") });

            provider.Load();

            provider
            .TryGet("", out var value)
            .Should()
            .BeTrue();

            value
            .Should()
            .Be("a");
        }
        public static void Values()
        {
            var provider = new CommandLineOptionsProvider(new[] { new OptionArgument("a", "1"), new OptionArgument("a", "2") });

            provider.Load();

            provider
            .TryGet("a:1", out var value)
            .Should()
            .BeTrue();

            value
            .Should()
            .Be("2");
        }
        public static void Multiple()
        {
            var provider = new CommandLineOptionsProvider(new[] { new OptionArgument("a", "1"), new OptionArgument("a", "2") });

            provider.Load();

            provider
            .GetChildKeys(Enumerable.Empty <string>(), null)
            .Should()
            .BeEquivalentTo("a", "a");

            provider
            .GetChildKeys(Enumerable.Empty <string>(), "a")
            .Should()
            .BeEquivalentTo("0", "1");
        }