示例#1
0
        public async Task DisposeCommandServicesDisposeAsyncDisposableDependencies()
        {
            var disposed = false;

            var provider = new ServiceCollection()
                           .AddScoped <TestAsyncDisposableClass>((sp) =>
            {
                return(new TestAsyncDisposableClass(() =>
                {
                    disposed = true;
                }));
            })
                           .BuildServiceProvider(true);

            var scopeFactory = provider.GetRequiredService <IServiceScopeFactory>();

            var context          = new CommandContext();
            var commandsServices = new CommandServicesFeature(context, scopeFactory);

            var asyncDisposable = commandsServices.CommandServices.GetRequiredService <TestAsyncDisposableClass>();

            await commandsServices.DisposeAsync();

            Assert.True(disposed);
        }
示例#2
0
        public void ThrowsExceptionIfWithoutServiceScopeFactory()
        {
            var context          = new CommandContext();
            var commandsServices = new CommandServicesFeature(context, null);

            Assert.Throws <InvalidOperationException>(() =>
            {
                commandsServices.CommandServices.GetService <TestDisposableClass>();
            });
        }
示例#3
0
        public void CanGetScopedDependencyCommandServices()
        {
            var provider = new ServiceCollection()
                           .AddScoped <TestScopedDependency>()
                           .BuildServiceProvider(true);

            var scopeFactory = provider.GetRequiredService <IServiceScopeFactory>();

            var context          = new CommandContext();
            var commandsServices = new CommandServicesFeature(context, scopeFactory);

            var scopedDependency = commandsServices.CommandServices.GetRequiredService <TestScopedDependency>();

            Assert.NotNull(scopedDependency);
        }