Ejemplo n.º 1
0
        public void Context_with_parameters_can_be_created_By_dbcontextactivator_createinstance()
        {
            var services = new ServiceCollection();
            var contextOptionsExtension = new FakeDbContextOptionsExtension();

            services
                .AddSingleton<FakeService>()
                .AddEntityFramework();

            var serviceProvider = services.BuildServiceProvider();
            var valueOfParamInt = 100;
            var valueOfParamStr = "Hello DbContext";
            using (var context = DbContextActivator.CreateInstance<ContextWithParameters>(serviceProvider, valueOfParamInt, valueOfParamStr))
            {
                Assert.NotNull(context.GetService<FakeService>());
                Assert.Equal(valueOfParamInt, context.ParamInt);
                Assert.Equal(valueOfParamStr, context.ParamStr);
            }
        }
Ejemplo n.º 2
0
        public void Context_with_options_and_options_action_can_be_used_as_service()
        {
            var services = new ServiceCollection();
            var contextOptionsExtension = new FakeDbContextOptionsExtension();

            services
                .AddSingleton<FakeService>()
                .AddEntityFramework()
                .AddDbContext<ContextWithOptions>(optionsBuilder
                    => ((IDbContextOptionsBuilderInfrastructure)optionsBuilder).AddOrUpdateExtension(contextOptionsExtension));

            var serviceProvider = services.BuildServiceProvider();

            using (var context = serviceProvider.GetRequiredService<ContextWithOptions>())
            {
                var options = context.GetService<IDbContextOptions>();

                Assert.NotNull(context.GetService<FakeService>());
                Assert.Equal(1, options.Extensions.Count());
                Assert.Same(contextOptionsExtension, options.Extensions.Single());
            }
        }