public void Parse_CustomFormatSettings_ShouldPassCustomFormatToValueParser()
        {
            var valueParser = A.Fake <ValueParser>(ob => ob.CallsBaseMethods());
            var parser      = new GuidListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Guids"), "guids");

            parser.ValueParser = valueParser;
            parser.GuidFormat  = "X";

            var tokens = new List <Token>
            {
                new OptionToken("guids")
                {
                    OptionValues = { "{0x13d02a84,0x84f7,0x4a2d,{0x8f,0x09,0x2f,0x96,0xde,0xfb,0x8c,0x79}}" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            Guid guid;

            A.CallTo(() => valueParser.TryParseGuid("{0x13d02a84,0x84f7,0x4a2d,{0x8f,0x09,0x2f,0x96,0xde,0xfb,0x8c,0x79}}", "X", out guid)).MustHaveHappened();
        }
        public void Parse_CustomFormatSettings_ShouldPassCustomFormatToValueParser()
        {
            var valueParser = A.Fake <ValueParser>(ob => ob.CallsBaseMethods());
            var parser      = new GuidOptionParser(typeof(DataTypesCommandOptions).GetProperty("Guid"), "guid");

            parser.ValueParser = valueParser;
            parser.GuidFormat  = "X";

            var tokens = new List <Token>
            {
                new OptionToken("guid")
                {
                    OptionValues = { "{0x501a44e0,0x6d8f,0x4dd8,{0x99,0x4e,0x77,0x33,0x00,0x57,0x2d,0x37}}" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            Guid guid;

            A.CallTo(() => valueParser.TryParseGuid("{0x501a44e0,0x6d8f,0x4dd8,{0x99,0x4e,0x77,0x33,0x00,0x57,0x2d,0x37}}", "X", out guid)).MustHaveHappened();
        }
        public void Parse_ValidValue_ShouldParseAndAssignValueToTargetProperty()
        {
            var valueParser = A.Fake <ValueParser>();
            var parser      = new GuidOptionParser(typeof(DataTypesCommandOptions).GetProperty("Guid"), "guid");

            parser.ValueParser = valueParser;

            var tokens = new List <Token>
            {
                new OptionToken("guid")
                {
                    OptionValues = { "501a44e0-6d8f-4dd8-994e-773300572d37" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            Guid guid;

            A.CallTo(() => valueParser.TryParseGuid("501a44e0-6d8f-4dd8-994e-773300572d37", null, out guid))
            .Returns(true)
            .AssignsOutAndRefParameters(new Guid("501a44e0-6d8f-4dd8-994e-773300572d37"));

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.Guid.Should().Be(new Guid("501a44e0-6d8f-4dd8-994e-773300572d37"));

            A.CallTo(() => valueParser.TryParseGuid("501a44e0-6d8f-4dd8-994e-773300572d37", null, out guid)).MustHaveHappened();
        }
Example #4
0
        public void Parse_CustomFormatSettings_ShouldPassCustomFormatToValueParser()
        {
            var valueParser = A.Fake <ValueParser>(ob => ob.CallsBaseMethods());
            var parser      = new DecimalListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Decimals"), "decimals");

            parser.ValueParser    = valueParser;
            parser.NumberStyles   = NumberStyles.Currency;
            parser.FormatProvider = new CultureInfo("de-DE");

            var tokens = new List <Token>
            {
                new OptionToken("decimals")
                {
                    OptionValues = { "123.456" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            Decimal decimalValue;

            A.CallTo(() => valueParser.TryParseDecimal("123.456", NumberStyles.Currency, new CultureInfo("de-DE"), out decimalValue)).MustHaveHappened();
        }
        public void Parse_CustomFormatSettings_ShouldPassCustomFormatToValueParser()
        {
            var valueParser = A.Fake <ValueParser>(ob => ob.CallsBaseMethods());
            var parser      = new TimeSpanListOptionParser(typeof(DataTypesCommandOptions).GetProperty("TimeSpans"), "timeSpans");

            parser.ValueParser    = valueParser;
            parser.TimeSpanFormat = @"hh\:mm";
            parser.TimeSpanStyles = TimeSpanStyles.AssumeNegative;
            parser.FormatProvider = new CultureInfo("de-DE");

            var tokens = new List <Token>
            {
                new OptionToken("timeSpans")
                {
                    OptionValues = { "23:59" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            TimeSpan timeSpan;

            A.CallTo(() => valueParser.TryParseTimeSpan("23:59", @"hh\:mm", new CultureInfo("de-DE"), TimeSpanStyles.AssumeNegative, out timeSpan)).MustHaveHappened();
        }
Example #6
0
        public void Parse_ValidValues_ShouldParseAndAssignToTargetProperty()
        {
            var valueParser = A.Fake <ValueParser>();
            var parser      = new EnumOptionParser <LogLevel>(typeof(DataTypesCommandOptions).GetProperty("Enum"), "logLevel");

            parser.ValueParser = valueParser;

            var tokens = new List <Token>
            {
                new OptionToken("logLevel")
                {
                    OptionValues = { "Debug" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            LogLevel logLevel;

            A.CallTo(() => valueParser.TryParseEnum("Debug", out logLevel))
            .Returns(true)
            .AssignsOutAndRefParameters(LogLevel.Debug);

            parser.Parse(tokens, parseResult);

            parseResult.HasErrors.Should().BeFalse();
            parseResult.CommandOptions.Should().BeOfType <DataTypesCommandOptions>();

            dataTypesCommandOptions.Enum.Should().Be(LogLevel.Debug);

            A.CallTo(() => valueParser.TryParseEnum("Debug", out logLevel)).MustHaveHappened();
        }
Example #7
0
        public void Parse_OptionNotPresent_ShouldSetTargetPropertyToTrue()
        {
            var parser = new BooleanOptionParser(typeof(DataTypesCommandOptions).GetProperty("Boolean"), "boolean");

            var tokens                  = new List <Token>();
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.Boolean.Should().BeFalse();
        }
        public void Parse_OptionNotPresent_ShouldAssignDefaultValueToTargetProperty()
        {
            var parser = new StringOptionParser(typeof(DataTypesCommandOptions).GetProperty("String"), "string");

            parser.OptionDefaultValue = "value";

            var tokens                  = new List <Token>();
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.String.Should().Be("value");
        }
        public void Parse_OptionNotPresent_ShouldAssignDefaultValueToTargetProperty()
        {
            var parser = new GuidOptionParser(typeof(DataTypesCommandOptions).GetProperty("Guid"), "guid");

            parser.OptionDefaultValue = new Guid("501a44e0-6d8f-4dd8-994e-773300572d37");

            var tokens                  = new List <Token>();
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.Guid.Should().Be(new Guid("501a44e0-6d8f-4dd8-994e-773300572d37"));
        }
Example #10
0
        public void Parse_OptionNotPresent_ShouldAssignDefaultValueToTargetProperty()
        {
            var parser = new EnumOptionParser <LogLevel>(typeof(DataTypesCommandOptions).GetProperty("Enum"), "logLevel");

            parser.OptionDefaultValue = LogLevel.Error;

            var tokens                  = new List <Token>();
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.Enum.Should().Be(LogLevel.Error);
        }
Example #11
0
        public void Parse_OptionNotPresent_ShouldAssignDefaultValueToTargetProperty()
        {
            var parser = new DecimalListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Decimals"), "decimals");

            parser.OptionDefaultValue = new List <Decimal> {
                123.456M, 456.789M
            };

            var tokens                  = new List <Token>();
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.Decimals.Should().BeEquivalentTo(123.456M, 456.789M);
        }
        public void Parse_OptionNotPresent_ShouldAssignDefaultValueToTargetProperty()
        {
            var parser = new TimeSpanListOptionParser(typeof(DataTypesCommandOptions).GetProperty("TimeSpans"), "timeSpans");

            parser.OptionDefaultValue = new List <TimeSpan> {
                new TimeSpan(23, 59, 59), new TimeSpan(10, 30, 59)
            };

            var tokens                  = new List <Token>();
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.TimeSpans.Should().BeEquivalentTo(new TimeSpan(23, 59, 59), new TimeSpan(10, 30, 59));
        }
Example #13
0
        public void Parse_OptionNotPresent_ShouldAssignDefaultValueToTargetProperty()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.OptionDefaultValue = new List <Int64> {
                123, 456
            };

            var tokens                  = new List <Token>();
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.Int64s.Should().BeEquivalentTo(123L, 456L);
        }
        public void Parse_OptionNotPresent_ShouldAssignDefaultValueToTargetProperty()
        {
            var parser = new GuidListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Guids"), "guids");

            parser.OptionDefaultValue = new List <Guid> {
                new Guid("13d02a84-84f7-4a2d-8f09-2f96defb8c79"), new Guid("9e6a5202-102f-4eb9-a217-0a58f4db40b6")
            };

            var tokens                  = new List <Token>();
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.Guids.Should().BeEquivalentTo(new Guid("13d02a84-84f7-4a2d-8f09-2f96defb8c79"), new Guid("9e6a5202-102f-4eb9-a217-0a58f4db40b6"));
        }
        public void Parse_ValidValue_ShouldParseAndAssignValueToTargetProperty()
        {
            var parser = new StringOptionParser(typeof(DataTypesCommandOptions).GetProperty("String"), "string");

            var tokens = new List <Token>
            {
                new OptionToken("string")
                {
                    OptionValues = { "value" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.String.Should().Be("value");
        }
Example #16
0
        public void Parse_ValidValue_ShouldParseAndAssignValueToTargetProperty()
        {
            var valueParser = A.Fake <ValueParser>();
            var parser      = new DecimalListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Decimals"), "decimals");

            parser.ValueParser = valueParser;

            var tokens = new List <Token>
            {
                new OptionToken("decimals")
                {
                    OptionValues = { "123.456", "456.789" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            Decimal decimalValue;

            A.CallTo(() => valueParser.TryParseDecimal("123.456", NumberStyles.Any, new CultureInfo("en-US"), out decimalValue))
            .Returns(true)
            .AssignsOutAndRefParameters(123.456M);

            A.CallTo(() => valueParser.TryParseDecimal("456.789", NumberStyles.Any, new CultureInfo("en-US"), out decimalValue))
            .Returns(true)
            .AssignsOutAndRefParameters(456.789M);

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.Decimals.Should().BeEquivalentTo(123.456M, 456.789M);

            A.CallTo(() => valueParser.TryParseDecimal("123.456", NumberStyles.Any, new CultureInfo("en-US"), out decimalValue)).MustHaveHappened();
            A.CallTo(() => valueParser.TryParseDecimal("456.789", NumberStyles.Any, new CultureInfo("en-US"), out decimalValue)).MustHaveHappened();
        }
        public void Parse_ValidValue_ShouldParseAndAssignValueToTargetProperty()
        {
            var valueParser = A.Fake <ValueParser>();
            var parser      = new TimeSpanListOptionParser(typeof(DataTypesCommandOptions).GetProperty("TimeSpans"), "timeSpans");

            parser.ValueParser = valueParser;

            var tokens = new List <Token>
            {
                new OptionToken("timeSpans")
                {
                    OptionValues = { "23:59:59", "10:30:59" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            TimeSpan timeSpan;

            A.CallTo(() => valueParser.TryParseTimeSpan("23:59:59", null, new CultureInfo("en-US"), TimeSpanStyles.None, out timeSpan))
            .Returns(true)
            .AssignsOutAndRefParameters(new TimeSpan(23, 59, 59));

            A.CallTo(() => valueParser.TryParseTimeSpan("10:30:59", null, new CultureInfo("en-US"), TimeSpanStyles.None, out timeSpan))
            .Returns(true)
            .AssignsOutAndRefParameters(new TimeSpan(10, 30, 59));

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.TimeSpans.Should().BeEquivalentTo(new TimeSpan(23, 59, 59), new TimeSpan(10, 30, 59));

            A.CallTo(() => valueParser.TryParseTimeSpan("23:59:59", null, new CultureInfo("en-US"), TimeSpanStyles.None, out timeSpan)).MustHaveHappened();
            A.CallTo(() => valueParser.TryParseTimeSpan("10:30:59", null, new CultureInfo("en-US"), TimeSpanStyles.None, out timeSpan)).MustHaveHappened();
        }
        public void Parse_ValidValue_ShouldParseAndAssignValueToTargetProperty()
        {
            var valueParser = A.Fake <ValueParser>();
            var parser      = new GuidListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Guids"), "guids");

            parser.ValueParser = valueParser;

            var tokens = new List <Token>
            {
                new OptionToken("guids")
                {
                    OptionValues = { "13d02a84-84f7-4a2d-8f09-2f96defb8c79", "9e6a5202-102f-4eb9-a217-0a58f4db40b6" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            Guid guid;

            A.CallTo(() => valueParser.TryParseGuid("13d02a84-84f7-4a2d-8f09-2f96defb8c79", null, out guid))
            .Returns(true)
            .AssignsOutAndRefParameters(new Guid("13d02a84-84f7-4a2d-8f09-2f96defb8c79"));

            A.CallTo(() => valueParser.TryParseGuid("9e6a5202-102f-4eb9-a217-0a58f4db40b6", null, out guid))
            .Returns(true)
            .AssignsOutAndRefParameters(new Guid("9e6a5202-102f-4eb9-a217-0a58f4db40b6"));

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.Guids.Should().BeEquivalentTo(new Guid("13d02a84-84f7-4a2d-8f09-2f96defb8c79"), new Guid("9e6a5202-102f-4eb9-a217-0a58f4db40b6"));

            A.CallTo(() => valueParser.TryParseGuid("13d02a84-84f7-4a2d-8f09-2f96defb8c79", null, out guid)).MustHaveHappened();
            A.CallTo(() => valueParser.TryParseGuid("9e6a5202-102f-4eb9-a217-0a58f4db40b6", null, out guid)).MustHaveHappened();
        }