Example #1
0
        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);
        }
Example #2
0
 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);
 }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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));
        }