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); }
public void ThrowsExceptionIfWithoutServiceScopeFactory() { var context = new CommandContext(); var commandsServices = new CommandServicesFeature(context, null); Assert.Throws <InvalidOperationException>(() => { commandsServices.CommandServices.GetService <TestDisposableClass>(); }); }
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); }