コード例 #1
0
        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"));
        }
コード例 #2
0
            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);
            }
コード例 #3
0
        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();
        }