private static async Task RunTestAsync <TResult>( Type innerType, Func <WrapperActivity, Task <TResult> > act, Action <WrapperActivity, TResult> verify) { var services = new WrapperActivity(innerType); TResult result = await act(services); verify?.Invoke(services, result); }
private static void RunTest <TResult>( Type innerType, Func <WrapperActivity, TResult> act, Action <WrapperActivity, TResult> verify) { var services = new WrapperActivity(innerType); TResult result = act(services); verify?.Invoke(services, result); }
public async Task InvokeAsync_Wrapped_SetsActivity() { // arrange var serviceProvider = new Mock <IServiceProvider>(); serviceProvider.Setup(m => m.GetService(typeof(TestActivity))).Returns(new TestActivity()); var wrapper = new WrapperActivity(new TaskActivityDescriptor(typeof(TestActivity))); DispatchMiddlewareContext context = CreateContext(wrapper); var middleware = new ServiceProviderActivityMiddleware(serviceProvider.Object); // act await middleware.InvokeAsync(context, () => Task.CompletedTask); // assert TaskActivity activity = context.GetProperty <TaskActivity>(); activity.Should().NotBeNull(); activity.Should().Be(wrapper.InnerActivity); serviceProvider.Verify(m => m.GetService(typeof(TestActivity)), Times.Once); }
public async Task Run_Method_InvokesInner() { // arrange var methodInfo = typeof(IMyService).GetMethod(nameof(IMyService.MyMethodAsync)); var descriptor = new TaskActivityDescriptor(methodInfo); var wrapperActivity = new WrapperActivity(descriptor); var services = new ServiceCollection(); services.AddSingleton <IMyService, MyService>(); var input = new JArray() { "some_string", 10 }; // act wrapperActivity.Initialize(services.BuildServiceProvider()); string result = await wrapperActivity.RunAsync(s_taskContext, input.ToString()); // assert string parsed = JsonConvert.DeserializeObject <string>(result); parsed.Should().Be("some_string|10"); }