Ejemplo 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);
        }
Ejemplo 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));
        }
Ejemplo n.º 3
0
        public void FixtureSetUp()
        {
            _onWorkerOneProcess = Start(GetPathFromConfig("PingApp-worker-exe-file"), WorkerService);
            _onWorkerTwoProcess = Start(GetPathFromConfig("PongApp-worker-exe-file"), WorkerService);

            var _pingCallBackHandler = new ExecutorCallbackService();
            var _pongCallBackHandler = new ExecutorCallbackService();

            _onWorkerOne = OnWorker.FromEndpointConfigNames("PingApp-AssemblyManager", "PingApp-Executor", _pingCallBackHandler);
            _onWorkerTwo = OnWorker.FromEndpointConfigNames("PongApp-AssemblyManager", "PongApp-Executor", _pongCallBackHandler);

            Instruction <Tuple <string, string>, bool> openApp1 = (ct, rp, args) => OpenApp(ct, rp, args.Item1);
            Instruction <Tuple <string, string>, bool> openApp2 = (ct, rp, args) => OpenApp(ct, rp, args.Item2);

            pingPath = GetPathFromConfig("PingApp-exe-file");
            pongPath = GetPathFromConfig("PongApp-exe-file");

            var tuple = new Tuple <string, string>(pingPath + @"\PingApp.exe", pongPath + @"\PongApp.exe");

            DistrEx.Coordinator.Coordinator.Do(_onWorkerOne.Do(openApp1), _onWorkerTwo.Do(openApp2), tuple);
        }