public void Convert_CommaSeparatedIntegers_ReturnsIntegers() { const string arg = "1,2,3,4,5"; var converter = new EnumerableValueConverter(); // Act var result = converter.Convert(arg, typeof(IEnumerable <int>), new OptionParameterAttribute('t', "test") { Separator = ',' }) as IEnumerable <int>; // Assert result .Should() .NotBeNull(); result .Should() .HaveCount(5); result .Should() .ContainInOrder(1, 2, 3, 4, 5); }
protected virtual ValueConverter CreateConverter(Type sourceType, Type targetType) { if (HasOption(MemberMapOptions.Hierarchy)) { if (EnumerableValueConverter.TryCreate(sourceType, targetType, _container, out var converter)) { return(converter); } } return(null); }
public void Convert_TargetTypeIsNotIEnumerable_ReturnsDoNothing() { var converter = new EnumerableValueConverter(); // Act var result = converter.Convert("1,2,3,4,5", typeof(object), new OptionParameterAttribute('v', "values")); // Assert result .Should() .Be(ConverterAction.DoNothing); }
public void Convert_ValueIsNull_ReturnsDoNothing() { var converter = new EnumerableValueConverter(); // Act var result = converter.Convert(null, typeof(IEnumerable), new OptionParameterAttribute('v', "values")); // Assert result .Should() .Be(ConverterAction.DoNothing); }
internal Func <TSource, TTarget> GetMapFunc <TSource, TTarget>() { Compile(); var converter = Converters.Get <TSource, TTarget>(); if (converter != null) { return((Func <TSource, TTarget>)converter.CreateDelegate(typeof(TSource), typeof(TTarget), _moduleBuilder)); } if (EnumerableValueConverter.TryCreate(typeof(TSource), typeof(TTarget), this, out converter)) { converter.Compile(_moduleBuilder); return((Func <TSource, TTarget>)converter.CreateDelegate(typeof(TSource), typeof(TTarget), _moduleBuilder)); } var typeMapper = TypeMapper <TSource, TTarget> .GetInstance(this); typeMapper.SetReadOnly(); typeMapper.Compile(_moduleBuilder); return(typeMapper.CreateConverter(_moduleBuilder)); }