示例#1
0
        public async Task PlayTest002()
        {
            var services = new Microsoft.Extensions.DependencyInjection.ServiceCollection();

            services.AddScoped <PlayService>();
            services.AddRequestPipe(config => {
                //config.Solver
            }, register => { });
            services.AddTransient <IRequestHandler <PlayRequest, PlayResponse>, PlayRequestHandler>();
            using (var serviceProviderRoot = services.BuildServiceProvider()) {
                using (var scope = serviceProviderRoot.CreateScope()) {
                    var scopeServices          = scope.ServiceProvider;
                    PlayRequestHandler handler = PlayRequestHandler.Create(scopeServices);
                    var responce = await handler.ExecuteAsync(
                        new PlayRequest()
                    {
                        A = 2, B = 40
                    },
                        CancellationToken.None,
                        new RequestHandlerExecutionContext());

                    Assert.Equal(42, responce.Sum);
                }
            }
        }
示例#2
0
        public void RequestExecutionService_2_Test()
        {
            var services = new Microsoft.Extensions.DependencyInjection.ServiceCollection();

            services.AddRequestPipe();
            using (var serviceProviderRoot = services.BuildServiceProvider()) {
                using (var scope = serviceProviderRoot.CreateScope()) {
                    var serviceProviderScope = scope.ServiceProvider;
                    var sut = serviceProviderScope.GetRequiredService <IRequestExecutionService>();
                    Assert.NotNull(sut);
                }
            }
        }
示例#3
0
        public void RequestExecutionService_1_ArgumentNullException_Test()
        {
            {
                Assert.Throws <ArgumentNullException>(() => {
                    var sut = new RequestExecutionService(new RequestPipeOptions(), (IServiceProvider)null);
                    return(sut);
                });
            }
            {
                Assert.Throws <ArgumentNullException>(() => {
                    var sut = new RequestExecutionService(new RequestPipeOptions(), (IRequestHandlerFactory)null);
                    return(sut);
                });
            }
            {
                var services = new Microsoft.Extensions.DependencyInjection.ServiceCollection();
                using (var serviceProviderRoot = services.BuildServiceProvider()) {
                    var sut = new RequestExecutionService((RequestPipeOptions)null !, serviceProviderRoot);
                    Assert.NotNull(sut);
                }
            }
            {
                var services = new Microsoft.Extensions.DependencyInjection.ServiceCollection();
                services.AddRequestPipe();
                using (var serviceProviderRoot = services.BuildServiceProvider()) {
                    var sut = serviceProviderRoot.GetRequiredService <IRequestExecutionService>();
                    Assert.NotNull(sut);

                    Assert.ThrowsAsync <ArgumentNullException>(() => {
                        return(sut.ExecuteAsync <object>(null, CancellationToken.None, null));
                    });
                }
            }
            {
                var services = new Microsoft.Extensions.DependencyInjection.ServiceCollection();
                services.AddRequestPipe();
                using (var serviceProviderRoot = services.BuildServiceProvider()) {
                    using (var scope = serviceProviderRoot.CreateScope()) {
                        var serviceProviderScope = scope.ServiceProvider;
                        var sut = serviceProviderScope.GetRequiredService <IRequestExecutionService>();
                        Assert.NotNull(sut);

                        Assert.ThrowsAsync <ArgumentNullException>(() => {
                            return(sut.ExecuteAsync <object>(null, CancellationToken.None, null));
                        });
                    }
                }
            }
        }
示例#4
0
        public async Task RequestExecutionService_3_Test()
        {
            var services = new Microsoft.Extensions.DependencyInjection.ServiceCollection();

            services.AddRequestPipe(
                null,
                (builder) => {
                builder.AddRequestHandler <RequestHandlerGna>();
            });
            using (var serviceProviderRoot = services.BuildServiceProvider()) {
                using (var scope = serviceProviderRoot.CreateScope()) {
                    var serviceProviderScope = scope.ServiceProvider;
                    var sut = serviceProviderScope.GetRequiredService <IRequestExecutionService>();
                    Assert.NotNull(sut);
                    var act = await sut.ExecuteAsync(new RequestGna()
                    {
                        A = 40, B = 2
                    }, CancellationToken.None, null);

                    Assert.Equal(42, act.Sum);
                }
            }
        }