Ejemplo n.º 1
0
        public void ResolveOverload_No_Overloads()
        {
            var matcher           = new CoconaCommandMatcher();
            var command           = CreateCommand("A", Array.Empty <ICommandParameterDescriptor>());
            var parsedCommandLine = new ParsedCommandLine(new CommandOption[] { }, new CommandArgument[] { }, new string[] { });
            var resolved          = matcher.ResolveOverload(command, parsedCommandLine);

            resolved.Should().NotBeNull();
        }
Ejemplo n.º 2
0
        public void ResolveOverload_Ambiguous()
        {
            var matcher        = new CoconaCommandMatcher();
            var commandOption0 = new CommandOptionDescriptor(typeof(bool), "foo", new[] { 'm' }, string.Empty, CoconaDefaultValue.None, null, CommandOptionFlags.None, Array.Empty <Attribute>());
            var commandOption1 = new CommandOptionDescriptor(typeof(bool), "bar", new[] { 'm' }, string.Empty, CoconaDefaultValue.None, null, CommandOptionFlags.None, Array.Empty <Attribute>());
            var command        = CreateCommand(
                "A",
                new ICommandParameterDescriptor[]
            {
                commandOption0, commandOption1
            },
                new CommandOverloadDescriptor[]
            {
                new CommandOverloadDescriptor(commandOption0, null, CreateCommand("A2", Array.Empty <ICommandParameterDescriptor>()), StringComparer.OrdinalIgnoreCase),
                new CommandOverloadDescriptor(commandOption0, null, CreateCommand("A3", Array.Empty <ICommandParameterDescriptor>()), StringComparer.OrdinalIgnoreCase),
            });
            var parsedCommandLine = new ParsedCommandLine(new CommandOption[] { new CommandOption(commandOption0, "true") }, new CommandArgument[] { }, new string[] { });

            Assert.Throws <CoconaException>(() => matcher.ResolveOverload(command, parsedCommandLine));
        }
Ejemplo n.º 3
0
        public void ResolveOverload_Overload_1()
        {
            var matcher       = new CoconaCommandMatcher();
            var commandOption = new CommandOptionDescriptor(typeof(string), "mode", new[] { 'm' }, string.Empty, CoconaDefaultValue.None, null, CommandOptionFlags.None, Array.Empty <Attribute>());
            var command       = CreateCommand(
                "A",
                new ICommandParameterDescriptor[]
            {
                commandOption
            },
                new CommandOverloadDescriptor[]
            {
                new CommandOverloadDescriptor(commandOption, "foo", CreateCommand("A2", Array.Empty <ICommandParameterDescriptor>()), StringComparer.OrdinalIgnoreCase),
                new CommandOverloadDescriptor(commandOption, "bar", CreateCommand("A3", Array.Empty <ICommandParameterDescriptor>()), StringComparer.OrdinalIgnoreCase),
            });
            var parsedCommandLine = new ParsedCommandLine(new CommandOption[] { }, new CommandArgument[] { }, new string[] { });
            var resolved          = matcher.ResolveOverload(command, parsedCommandLine);

            resolved.Should().NotBeNull();
            resolved.Name.Should().Be("A");
        }