Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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");
        }