示例#1
0
        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);
        }
示例#2
0
        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);
        }