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))); }
private Delegate Create(long id, Type delegateType, BindingDelegate <TMarshal> parameterBinder) { return(generator.Generate(delegateType, id, callbackExecutor, parameterBinder)); }