예제 #1
0
        public void WithOptions()
        {
            var complexOptions = new ComplexNumberConvertOptions(ComplexNumberElement.Real);
            var builder        = ConvertOptionsBuilder.Empty;
            var newBuilder     = builder.WithOptions(complexOptions);

            // Returns new instance
            Assert.NotSame(builder, newBuilder);

            // Original builder is not modified
            Assert.Empty(builder);

            // New builder does contain the provided options
            Assert.NotEmpty(newBuilder);
            Assert.Contains(complexOptions, newBuilder);
        }
예제 #2
0
        public void Ctor_Enumerable()
        {
            var complexOptions = new ComplexNumberConvertOptions(ComplexNumberElement.Real);
            var options        = new OptionSet[]
            {
                BooleanConvertOptions.Default,
                EnumConvertOptions.Default,
                complexOptions
            };

            var builder = new ConvertOptionsBuilder(options, null);

            Assert.NotNull(builder);
            Assert.Contains(BooleanConvertOptions.Default, builder);
            Assert.Contains(EnumConvertOptions.Default, builder);
            Assert.Contains(complexOptions, builder);
            Assert.Equal(3, builder.Count());
        }
예제 #3
0
        public void FromConvertOptions()
        {
            var stringOpts  = new StringConvertOptions(StringAsNullOption.NullReference, TrimStringFlags.None);
            var valOpts     = new ValueTypeConvertOptions(ValueTypeConvertFlags.None);
            var complexOpts = new ComplexNumberConvertOptions(ComplexNumberElement.Real);
            var boolOpts    = new BooleanConvertOptions(new[] { bool.TrueString }, new[] { bool.FalseString });
            var enumOpts    = new EnumConvertOptions(UndefinedValueOption.Throw, UndefinedValueOption.Throw);
            var numberOpts  = new NumberConvertOptions(ParseNumericStringFlags.None);

            var opts = new ConvertOptions(new OptionSet[] { stringOpts, valOpts, complexOpts, boolOpts, enumOpts, numberOpts });

            var builder = ConvertOptionsBuilder.FromConvertOptions(opts);

            Assert.Equal(6, builder.Count());
            Assert.Contains(stringOpts, builder);
            Assert.Contains(valOpts, builder);
            Assert.Contains(complexOpts, builder);
            Assert.Contains(boolOpts, builder);
            Assert.Contains(enumOpts, builder);
            Assert.Contains(numberOpts, builder);
        }
예제 #4
0
        public void Ctor_ReplaceOptions()
        {
            // Second ComplexNumberConvertOptions should replace the first
            var complexOptions1 = new ComplexNumberConvertOptions(ComplexNumberElement.Real);
            var complexOptions2 = new ComplexNumberConvertOptions(ComplexNumberElement.Imaginary);
            var options         = new OptionSet[]
            {
                BooleanConvertOptions.Default,
                EnumConvertOptions.Default,
                complexOptions1
            };

            var builder1 = new ConvertOptionsBuilder(options, null);
            var builder  = new ConvertOptionsBuilder(builder1, complexOptions2);

            Assert.NotNull(builder);
            Assert.Contains(BooleanConvertOptions.Default, builder);
            Assert.Contains(EnumConvertOptions.Default, builder);
            Assert.DoesNotContain(complexOptions1, builder);
            Assert.Contains(complexOptions2, builder);
            Assert.Equal(3, builder.Count());
        }