public void Can_update_an_existing_extension()
        {
            IDbContextOptionsExtensions options = new DbContextOptions();

            options.AddOrUpdateExtension<FakeDbContextOptionsExtension1>(e => e.Something += "One");
            options.AddOrUpdateExtension<FakeDbContextOptionsExtension1>(e => e.Something += "Two");

            Assert.Equal("OneTwo", options.Extensions.OfType<FakeDbContextOptionsExtension1>().Single().Something);
        }
        public void Can_update_an_existing_extension()
        {
            IDbContextOptions options = new DbContextOptions();

            options.AddOrUpdateExtension <FakeDbContextOptionsExtension1>(e => e.Something += "One");
            options.AddOrUpdateExtension <FakeDbContextOptionsExtension1>(e => e.Something += "Two");

            Assert.Equal("OneTwo", options.Extensions.OfType <FakeDbContextOptionsExtension1>().Single().Something);
        }
        public void Extensions_can_be_added_to_options()
        {
            IDbContextOptionsExtensions options = new DbContextOptions();

            options.AddOrUpdateExtension<FakeDbContextOptionsExtension1>(e => { });
            options.AddOrUpdateExtension<FakeDbContextOptionsExtension2>(e => { });

            Assert.Equal(2, options.Extensions.Count);
            Assert.IsType<FakeDbContextOptionsExtension1>(options.Extensions[0]);
            Assert.IsType<FakeDbContextOptionsExtension2>(options.Extensions[1]);
        }
        public void Extensions_can_be_added_to_options()
        {
            IDbContextOptions options = new DbContextOptions();

            options.AddOrUpdateExtension <FakeDbContextOptionsExtension1>(e => { });
            options.AddOrUpdateExtension <FakeDbContextOptionsExtension2>(e => { });

            Assert.Equal(2, options.Extensions.Count);
            Assert.IsType <FakeDbContextOptionsExtension1>(options.Extensions[0]);
            Assert.IsType <FakeDbContextOptionsExtension2>(options.Extensions[1]);
        }
        private static DbContextOptions CreateOptions(Action <EntityServicesBuilder> builderAction)
        {
            IDbContextOptions options = new DbContextOptions();

            options.AddOrUpdateExtension <FakeDbContextOptionsExtension>(e => e.BuilderActions.Add(builderAction));
            return((DbContextOptions)options);
        }
        private static DbContextService <IDbContextOptions> CreateOptions(
            Action <FakeOptionsExtension1> configUpdater1,
            Action <FakeOptionsExtension2> configUpdater2 = null)
        {
            IDbContextOptions contextOptions = new DbContextOptions();

            if (configUpdater1 != null)
            {
                contextOptions.AddOrUpdateExtension(configUpdater1);
            }

            if (configUpdater2 != null)
            {
                contextOptions.AddOrUpdateExtension(configUpdater2);
            }

            return(new DbContextService <IDbContextOptions>(contextOptions));
        }
        public void Is_configured_when_configuration_contains_associated_extension()
        {
            IDbContextOptionsExtensions options = new DbContextOptions();
            options.AddOrUpdateExtension<InMemoryOptionsExtension>(e => { });

            var configurationMock = new Mock<DbContextConfiguration>();
            configurationMock.Setup(m => m.ContextOptions).Returns(options);

            Assert.True(new InMemoryDataStoreSource(configurationMock.Object).IsConfigured);
        }
        public void Is_available_when_configured()
        {
            IDbContextOptions options = new DbContextOptions();

            options.AddOrUpdateExtension <SqlServerOptionsExtension>(e => { });

            var configurationMock = new Mock <DbContextServices>();

            configurationMock.Setup(m => m.ContextOptions).Returns(options);

            Assert.True(new SqlServerDataStoreSource(configurationMock.Object, new DbContextService <IDbContextOptions>(options)).IsAvailable);
        }
예제 #9
0
        public void Is_configured_when_configuration_contains_associated_extension()
        {
            IDbContextOptions options = new DbContextOptions();

            options.AddOrUpdateExtension <InMemoryOptionsExtension>(e => { });

            var configurationMock = new Mock <DbContextServices>();

            configurationMock.Setup(m => m.ContextOptions).Returns(options);

            Assert.True(new InMemoryDataStoreSource(configurationMock.Object, new DbContextService <IDbContextOptions>(options)).IsConfigured);
        }
        private static DbContextConfiguration CreateConfiguration(
            Action <FakeOptionsExtension1> configUpdater1,
            Action <FakeOptionsExtension2> configUpdater2 = null)
        {
            IDbContextOptionsExtensions contextOptions = new DbContextOptions();

            if (configUpdater1 != null)
            {
                contextOptions.AddOrUpdateExtension(configUpdater1);
            }

            if (configUpdater2 != null)
            {
                contextOptions.AddOrUpdateExtension(configUpdater2);
            }

            var contextConfigurationMock = new Mock <DbContextConfiguration>();

            contextConfigurationMock.Setup(m => m.ContextOptions).Returns(contextOptions);

            return(contextConfigurationMock.Object);
        }
        public void Cloning_copies_options_and_further_config_does_not_impact_original()
        {
            var model = Mock.Of <IModel>();

            IDbContextOptions options = new DbContextOptions <UnkoolContext>().UseModel(model);

            options.AddOrUpdateExtension <FakeDbContextOptionsExtension1>(e => { });

            options.RawOptions = new Dictionary <string, string> {
                { "ConnectionString", "Database=Crunchie" }
            };

            var clone = options.Clone();

            Assert.IsType <DbContextOptions <UnkoolContext> >(clone);
            Assert.Same(model, clone.Model);

            var cloneAsExtensions = ((IDbContextOptions)clone);

            Assert.Equal(1, cloneAsExtensions.Extensions.Count);
            Assert.IsType <FakeDbContextOptionsExtension1>(cloneAsExtensions.Extensions[0]);

            Assert.Equal("Database=Crunchie", cloneAsExtensions.RawOptions["ConnectionString"]);

            var model2 = Mock.Of <IModel>();

            clone.UseModel(model2);

            cloneAsExtensions.AddOrUpdateExtension <FakeDbContextOptionsExtension2>(e => { });

            Assert.Same(model2, clone.Model);

            Assert.Equal(2, cloneAsExtensions.Extensions.Count);
            Assert.IsType <FakeDbContextOptionsExtension1>(cloneAsExtensions.Extensions[0]);
            Assert.IsType <FakeDbContextOptionsExtension2>(cloneAsExtensions.Extensions[1]);

            Assert.Same(model, options.Model);

            Assert.Equal(1, options.Extensions.Count);
            Assert.IsType <FakeDbContextOptionsExtension1>(options.Extensions[0]);
        }
        private static DbContextConfiguration CreateConfiguration(
            Action<FakeOptionsExtension1> configUpdater1,
            Action<FakeOptionsExtension2> configUpdater2 = null)
        {
            IDbContextOptionsExtensions contextOptions = new DbContextOptions();

            if (configUpdater1 != null)
            {
                contextOptions.AddOrUpdateExtension(configUpdater1);
            }

            if (configUpdater2 != null)
            {
                contextOptions.AddOrUpdateExtension(configUpdater2);
            }

            var contextConfigurationMock = new Mock<DbContextConfiguration>();
            contextConfigurationMock.Setup(m => m.ContextOptions).Returns(contextOptions);

            return contextConfigurationMock.Object;
        }
 private static DbContextOptions CreateOptions(Action<EntityServicesBuilder> builderAction)
 {
     IDbContextOptionsExtensions options = new DbContextOptions();
     options.AddOrUpdateExtension<FakeDbContextOptionsExtension>(e => e.BuilderActions.Add(builderAction));
     return (DbContextOptions)options;
 }