Exemplo n.º 1
0
        public void ComposesOptionsForNamedArguments_WithRestrictedValues()
        {
            this.AddNamedArgument(
                "name",
                "placeholder",
                "description",
                Optional <IEnumerable <string> > .CreateSet(new[] { "firstAllowed", "secondAllowed" }));

            Usage result = this.testee.Compose();

            result.Options.Should().Be(Lines("-name <placeholder = { firstAllowed | secondAllowed }>\tdescription"));
        }
        public void Succeeds_WhenAllowedValueForNamedArgumentWithRestrictedValues()
        {
            const string Name    = "name";
            const string Allowed = "allowed";

            string[] allowedValues = { "okay", Allowed, "allowedToo" };

            var configuration = new CommandLineConfiguration(
                new[] { new NamedArgument <string>(Name, x => { })
                        {
                            AllowedValues = Optional <IEnumerable <string> > .CreateSet(allowedValues)
                        } },
                NoLongAliases,
                NoRequiredArguments,
                NoHelp);
            var testee = new CommandLineParser(configuration);

            var result = testee.Parse(new[] { "-" + Name, Allowed });

            result.Succeeded.Should().BeTrue();
        }
        public void Fails_WhenNotAllowedValueForNamedArgumentWithRestrictedValues()
        {
            const string Name = "name";

            string[]     allowedValues = new[] { "allowed" };
            const string NotAllowed    = "notAllowed";

            var configuration = new CommandLineConfiguration(
                new[] { new NamedArgument <string>(Name, x => { })
                        {
                            AllowedValues = Optional <IEnumerable <string> > .CreateSet(allowedValues)
                        } },
                NoLongAliases,
                NoRequiredArguments,
                NoHelp);
            var testee = new CommandLineParser(configuration);

            var result = testee.Parse(new[] { "-" + Name, NotAllowed });

            result.Should()
            .BeFailedParsingResult()
            .WithMessage(Errors.Errors.ValueNotAllowed(NotAllowed, allowedValues));
        }
Exemplo n.º 4
0
            public INamedSyntax <T> RestrictedTo(params T[] allowedValues)
            {
                this.current.AllowedValues = Optional <IEnumerable <T> > .CreateSet(allowedValues);

                return(this);
            }