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); }
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()); }
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); }
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()); }