public void FailsForNonTaskReturnType()
        {
            var gen = new CallbackDelegateGenerator <object>();
            var callbackExecutorMock = new Mock <ICallbackExecutor <object> >();

            callbackExecutorMock.SetupGet(_ => _.CanExecute).Returns(true);

            Assert.Throws <InvalidOperationException>(() => gen.Generate(typeof(Action), 1, callbackExecutorMock.Object,
                                                                         context => { }));
        }
        public void ReturnTypeSet()
        {
            var gen = new CallbackDelegateGenerator <object>();
            var callbackExecutorMock = new Mock <ICallbackExecutor <object> >();

            callbackExecutorMock.SetupGet(_ => _.CanExecute).Returns(true);
            var generated = (TestDelegate)gen.Generate(typeof(TestDelegate), 1, callbackExecutorMock.Object, context => { });

            generated("");

            callbackExecutorMock.Verify(_ => _.Execute(It.Is <CallbackExecutionParameters <object> >(__ => __.ResultTargetType == typeof(string))));
        }
        public void BindValuesSet()
        {
            var gen = new CallbackDelegateGenerator <object>();
            var callbackExecutorMock = new Mock <ICallbackExecutor <object> >();

            callbackExecutorMock.SetupGet(_ => _.CanExecute).Returns(true);

            var generated = (TestBindingDelegate)gen.Generate(typeof(TestBindingDelegate), 1, callbackExecutorMock.Object, context => { });

            generated(new object());

            callbackExecutorMock.Verify(_ =>
                                        _.Execute(It.Is <CallbackExecutionParameters <object> >(__ => __.Parameters.Single().Bindable != null)));
        }
示例#4
0
 private Delegate Create(long id, Type delegateType, BindingDelegate <TMarshal> parameterBinder)
 {
     return(generator.Generate(delegateType, id, callbackExecutor, parameterBinder));
 }