public void PassingNoValueToANullableIntegerOptionFails()
        {
            var options = new NullableTypesOptions();
            bool result = base.Parser.ParseArguments(new string[] { "-int" }, options);

            base.AssertParserFailure(result);
        }
        public void ParseNullableEnumerationOption()
        {
            var options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { "--enum=ReadWrite" }, options);

            ResultShouldBeTrue();
            options.EnumValue.Should().Equal(FileAccess.ReadWrite);

            options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { }, options);

            ResultShouldBeTrue();
            options.EnumValue.Should().Be.Null();
        }
        public void ParseNullableDoubleOption()
        {
            var options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { "-d9.999" }, options);

            ResultShouldBeTrue();
            options.DoubleValue.Should().Equal(9.999);

            options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { }, options);

            ResultShouldBeTrue();
            options.DoubleValue.Should().Be.Null();
        }
        public void ParseNullableEnumerationOption()
        {
            var options = new NullableTypesOptions();
            bool result = base.Parser.ParseArguments(new string[] { "--enum=ReadWrite" }, options);

            base.AssertParserSuccess(result);
            Assert.AreEqual(FileAccess.ReadWrite, options.EnumValue);

            options = new NullableTypesOptions();
            result = base.Parser.ParseArguments(new string[] { }, options);

            base.AssertParserSuccess(result);
            Assert.IsNull(options.EnumValue);
        }
        public void ParseNullableIntegerOption()
        {
            var options = new NullableTypesOptions();
            bool result = base.Parser.ParseArguments(new string[] { "-i", "99" }, options);

            base.AssertParserSuccess(result);
            Assert.AreEqual(99, options.IntegerValue);

            options = new NullableTypesOptions();
            result = base.Parser.ParseArguments(new string[] { }, options);

            base.AssertParserSuccess(result);
            Assert.IsNull(options.IntegerValue);
        }
        public void ParseNullableDoubleOption()
        {
            var options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { "-d9.999" }, options);

            ResultShouldBeTrue();
            Assert.AreEqual(9.999, options.DoubleValue);

            options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { }, options);

            ResultShouldBeTrue();
            Assert.IsNull(options.DoubleValue);
        }
        public void Parse_nullable_enumeration_option()
        {
            var options = new NullableTypesOptions();
            var parser = new CommandLineParser();
            var result = parser.ParseArguments(new string[] { "--enum=ReadWrite" }, options);

            result.Should().BeTrue();
            options.EnumValue.Should().Be(FileAccess.ReadWrite);

            options = new NullableTypesOptions();
            parser = new CommandLineParser();
            result = parser.ParseArguments(new string[] { }, options);

            result.Should().BeTrue();
            options.EnumValue.Should().BeNull();
        }
        public void Parse_nullable_double_option()
        {
            var options = new NullableTypesOptions();
            var parser = new CommandLineParser();
            var result = parser.ParseArguments(new string[] { "-d9.999" }, options);

            result.Should().BeTrue();
            options.DoubleValue.Should().Be(9.999);

            options = new NullableTypesOptions();
            parser = new CommandLineParser();
            result = parser.ParseArguments(new string[] { }, options);

            result.Should().BeTrue();
            options.DoubleValue.Should().NotHaveValue();
        }
        public void ParseNullableIntegerOption()
        {
            var options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { "-i", "99" }, options);

            ResultShouldBeTrue();
            options.IntegerValue.Should().Equal(99);

            options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { }, options);

            ResultShouldBeTrue();
            options.IntegerValue.Should().Be.Null();
        }
        public void PassingNoValueToANullableIntegerOptionFails()
        {
            var options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { "-int" }, options);

            ResultShouldBeFalse();
        }
        public void Passing_no_value_to_a_nullable_enumeration_option_fails()
        {
            var options = new NullableTypesOptions();
            var parser = new Parser();
            var result = parser.ParseArguments(new string[] { "--enum" }, options);

            result.Should().BeFalse();
        }
        public void Passing_no_value_to_a_nullable_integer_option_fails()
        {
            var options = new NullableTypesOptions();
            var parser = new CommandLineParser();
            var result = parser.ParseArguments(new string[] { "-int" }, options);

            result.Should().BeFalse();
        }
        public void Passing_bad_value_to_a_nullable_enumeration_option_fails()
        {
            var options = new NullableTypesOptions();
            var parser = new CommandLineParser();
            var result = parser.ParseArguments(new string[] { "-e", "Overwrite" }, options);

            result.Should().BeFalse();
        }
        public void Parse_string_option_and_nullable_value_types()
        {
            var options = new NullableTypesOptions();
            var parser = new CommandLineParser();
            var result = parser.ParseArguments(new string[] { "--string", "alone" }, options);

            result.Should().BeTrue();
            options.StringValue.Should().Be("alone");

            options = new NullableTypesOptions();
            parser = new CommandLineParser();
            result = parser.ParseArguments(
                new string[] { "-d1.789", "--int", "10099", "-stogether", "--enum", "Read" }, options);

            result.Should().BeTrue();
            options.DoubleValue.Should().Be(1.789D);
            options.IntegerValue.Should().Be(10099);
            options.StringValue.Should().Be("together");
            options.EnumValue.Should().Be(FileAccess.Read);
        }
        public void Parse_nullable_integer_option()
        {
            var options = new NullableTypesOptions();
            var parser = new Parser();
            var result = parser.ParseArguments(new string[] { "-i", "99" }, options);

            result.Should().BeTrue();
            options.IntegerValue.Should().Be(99);

            options = new NullableTypesOptions();
            parser = new Parser();
            result = parser.ParseArguments(new string[] { }, options);

            result.Should().BeTrue();
            options.IntegerValue.Should().NotHaveValue();
        }
        public void PassingBadValueToANullableDoubleOptionFails()
        {
            var options = new NullableTypesOptions();
            bool result = base.Parser.ParseArguments(new string[] { "--double", "9,999" }, options);

            base.AssertParserFailure(result);
        }
        public void ParseStringOptionAndNullableValueTypes()
        {
            var options = new NullableTypesOptions();
            bool result = base.Parser.ParseArguments(new string[] { "--string", "alone" }, options);

            base.AssertParserSuccess(result);
            Assert.AreEqual("alone", options.StringValue);

            options = new NullableTypesOptions();
            result = base.Parser.ParseArguments(
                new string[] { "-d1.789", "--int", "10099", "-stogether", "--enum", "Read" }, options);

            base.AssertParserSuccess(result);
            Assert.AreEqual(1.789, options.DoubleValue);
            Assert.AreEqual(10099, options.IntegerValue);
            Assert.AreEqual("together", options.StringValue);
            Assert.AreEqual(FileAccess.Read, options.EnumValue);
        }
        public void ParseStringOptionAndNullableValueTypes()
        {
            var options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { "--string", "alone" }, options);

            ResultShouldBeTrue();
            options.StringValue.Should().Equal("alone");

            options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(
                new string[] { "-d1.789", "--int", "10099", "-stogether", "--enum", "Read" }, options);

            ResultShouldBeTrue();
            options.DoubleValue.Should().Equal(1.789D);
            options.IntegerValue.Should().Equal(10099);
            options.StringValue.Should().Equal("together");
            options.EnumValue.Should().Equal(FileAccess.Read);
        }
        public void PassingBadValueToANullableDoubleOptionFails()
        {
            var options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { "--double", "9,999" }, options);

            ResultShouldBeFalse();
        }
        public void PassingBadValueToANullableEnumerationOptionFails()
        {
            var options = new NullableTypesOptions();
            Result = base.Parser.ParseArguments(new string[] { "-e", "Overwrite" }, options);

            ResultShouldBeFalse();
        }
        public void PassingBadValueToANullableEnumerationOptionFails()
        {
            var options = new NullableTypesOptions();
            bool result = base.Parser.ParseArguments(new string[] { "-e", "Overwrite" }, options);

            base.AssertParserFailure(result);
        }
        public void Passing_bad_value_to_a_nullable_double_option_fails()
        {
            var options = new NullableTypesOptions();
            var parser = new Parser();
            var result = parser.ParseArguments(new string[] { "--double", "9,999" }, options);

            result.Should().BeFalse();
        }