public void GetTargetMethod() { var conext = new DefaultInvocationContext( typeof(IFoobar).GetMethod("Invoke"), new Foo(), new Bar(), new object[] { "foobar" }); Assert.Same(conext.TargetMethod, typeof(Bar).GetMethod("Invoke")); }
public T Multiply <T>(T x, T y) { var method = typeof(ICalculator).GetMethod("Multiply"); var interceptor = _interceptors.GetInterceptor(method); var invoker = new TargetInvoker <T>(_target); InterceptDelegate next = new InterceptDelegate(invoker.Invoke); var arguments = new object[] { x, y }; var context = new DefaultInvocationContext(method, this, _target, arguments); interceptor(next)(context).Wait(); return((T)context.ReturnValue); }
public async Task InvokeAsync_ShouldExecute_LoadRetunValueAsString() { // Arrange var hystrixInterceptor = CreateHystrixInterceptor(); var methodInfo = typeof(MockService).GetMethod(nameof(MockService.MethodRetunsObject), new Type[] { }); var mockservice = new MockService(); var context = new DefaultInvocationContext(methodInfo, mockservice, mockservice, new object[] { }); _hystrixCommandProvider.ExecuteAsync(methodInfo, Arg.Any <object>(), Arg.Any <object[]>()).Returns(Task.FromResult <object>("Teste")); // Act await hystrixInterceptor.InvokeAsync(context); // Assert context.ReturnValue.Should().NotBeNull(); }