public void GetTriggerServiceProvider_WithApplicationDi_ReturnsScopedApplication() { var applicationServiceProvider = new ServiceCollection() .AddDbContext <TestDbContext>(options => { options.UseInMemoryDatabase("Test") .UseTriggers(); options.EnableServiceProviderCaching(false); }) .AddScoped <object>() .BuildServiceProvider(); var dbContext = applicationServiceProvider.GetRequiredService <TestDbContext>(); var subject = new ApplicationTriggerServiceProviderAccessor(dbContext.GetInfrastructure(), null, new NullLogger <ApplicationTriggerServiceProviderAccessor>()); var triggerServiceProvider = subject.GetTriggerServiceProvider(); var scopedObject = triggerServiceProvider.GetService <object>(); Assert.NotNull(scopedObject); var applicationScopedObject = applicationServiceProvider.GetService <object>(); Assert.NotNull(applicationScopedObject); Assert.NotEqual(applicationScopedObject, scopedObject); }
public void GetTriggerServiceProvider_WithApplicationDiAndTransform_ReturnsCustomServiceProvider() { var applicationServiceProvider = new ServiceCollection() .AddDbContext <TestDbContext>(options => { options.UseInMemoryDatabase("Test") .UseTriggers(); }) .AddScoped <object>() .BuildServiceProvider(); var dbContext = applicationServiceProvider.GetRequiredService <TestDbContext>(); var subject = new ApplicationTriggerServiceProviderAccessor(dbContext.GetInfrastructure(), _ => applicationServiceProvider, new NullLogger <ApplicationTriggerServiceProviderAccessor>()); var triggerServiceProvider = subject.GetTriggerServiceProvider(); Assert.Equal(applicationServiceProvider, triggerServiceProvider); }
public void GetTriggerServiceProvider_WithApplicationDiAndTransform_ReturnsCustomServiceProvider() { var applicationServiceProvider = new ServiceCollection() .AddDbContext <TestDbContext>(options => { options.ConfigureWarnings(warningOptions => { warningOptions.Ignore(CoreEventId.ManyServiceProvidersCreatedWarning); }); options.UseInMemoryDatabase("Test") .UseTriggers(); }) .AddScoped <object>() .BuildServiceProvider(); var dbContext = applicationServiceProvider.GetRequiredService <TestDbContext>(); var subject = new ApplicationTriggerServiceProviderAccessor(dbContext.GetInfrastructure(), _ => applicationServiceProvider); var triggerServiceProvider = subject.GetTriggerServiceProvider(); Assert.Equal(applicationServiceProvider, triggerServiceProvider); }