Exemplo n.º 1
0
        public void To_DefaultCase_DoesNotThrow()
        {
            var          mapper       = A.Fake <IExtensibleMapper <TSource, TTarget> >();
            const string resultString = "foo";
            Expression <Func <TSource, string> > fromExpr = s => resultString;
            var target = new TargetSpec <TSource, TTarget, string>(mapper, fromExpr);
            var prop   = typeof(TTarget).GetProperties(
                BindingFlags.GetProperty
                | BindingFlags.SetProperty
                | BindingFlags.Instance
                | BindingFlags.Public)
                         .First(p => p.PropertyType == typeof(string));
            var propParam  = Expression.Parameter(typeof(TTarget));
            var propExpr   = Expression.Property(propParam, prop);
            var propCast   = Expression.Convert(propExpr, typeof(object));
            var propLambda = Expression.Lambda <Func <TTarget, object> >(propExpr, propParam);
            MappingAction <TSource, TTarget> resultingAction = null;

            A.CallTo(
                () => mapper.AddMappingAction(
                    A <string> .Ignored,
                    prop.Name,
                    A <MappingAction <TSource, TTarget> > .Ignored))
            .Invokes(a => { resultingAction = (MappingAction <TSource, TTarget>)a.Arguments[2]; });

            var res = target.To(propLambda);

            var sourceObj = new TSource();
            var targetObj = new TTarget();

            resultingAction(sourceObj, targetObj);
            prop.GetValue(targetObj, null).ShouldBe(resultString);
        }
Exemplo n.º 2
0
        public void To_NotAProperty_Throws()
        {
            var mapper = A.Fake <IExtensibleMapper <TSource, TTarget> >();
            Expression <Func <TSource, int> > fromExpr = s => 1;
            var target = new TargetSpec <TSource, TTarget, int>(mapper, fromExpr);

            Should.Throw <ArgumentException>(() => target.To(t => 1));
        }