示例#1
0
        public void OnModelCreating_BuildsModel_CanIgnoreNavigations()
        {
            // Arrange
            var productEntityTypeBuilder        = new ProductEntityTypeBuilder();
            var productVariantEntityTypeBuilder = new ProductVariantEntityTypeBuilder();
            var inputBuilders = new IModelBuilder[]
            {
                productEntityTypeBuilder,
                productVariantEntityTypeBuilder
            };
            var modelBuilderService = new ModelBuilderService(inputBuilders);
            var hook         = new AutoModelDbContextHook(modelBuilderService);
            var modelBuilder = new ModelBuilder(new ConventionSet());

            // Act
            ((IDbContextHook)hook).SetDbContextType(typeof(NoNavigationsAutoBuildCatalogDbContext));
            hook.OnModelCreating(modelBuilder);

            // Assert
            var entityTypes = modelBuilder.Model.GetEntityTypes().ToArray();

            Assert.Equal(1, entityTypes.Length);
            Assert.Equal(true, productEntityTypeBuilder.BuildEntityCalled);
            Assert.Contains(entityTypes, et => et.ClrType == typeof(Product));
        }
示例#2
0
        public void OnModelCreating_DoesNothing_IfNoDbContextType()
        {
            // Arrange
            var modelBuilderService = new ModelBuilderService(new IModelBuilder[0]);
            var hook         = new AutoModelDbContextHook(modelBuilderService);
            var modelBuilder = new ModelBuilder(new ConventionSet());

            // Act
            // MA - the DbContextType property is set by the ExtendedDbContext constructor, so its currently null.
            hook.OnModelCreating(modelBuilder);

            // Assert
            var entityTypes = modelBuilder.Model.GetEntityTypes().ToArray();

            Assert.Equal(0, entityTypes.Length);
        }
示例#3
0
        public void OnModelCreating_DoesNothing_IfNoAutoBuildAttribute()
        {
            // Arrange
            var modelBuilderService = new ModelBuilderService(new IModelBuilder[0]);
            var hook         = new AutoModelDbContextHook(modelBuilderService);
            var modelBuilder = new ModelBuilder(new ConventionSet());

            // Act
            ((IDbContextHook)hook).SetDbContextType(typeof(NoAutoBuildCatalogDbContext));
            hook.OnModelCreating(modelBuilder);

            // Assert
            var entityTypes = modelBuilder.Model.GetEntityTypes().ToArray();

            Assert.Equal(0, entityTypes.Length);
        }
示例#4
0
        public void OnModelCreating_BuildsModel_UsingTypedContextModelBuilder()
        {
            // Arrange
            var contextModelBuilder = new ContextModelBuilder();
            var inputBuilders       = new IModelBuilder[]
            {
                contextModelBuilder
            };
            var modelBuilderService = new ModelBuilderService(inputBuilders);
            var hook         = new AutoModelDbContextHook(modelBuilderService);
            var modelBuilder = new ModelBuilder(new ConventionSet());

            // Act
            ((IDbContextHook)hook).SetDbContextType(typeof(AutoBuildCatalogDbContext));
            hook.OnModelCreating(modelBuilder);

            // Assert
            var entityTypes = modelBuilder.Model.GetEntityTypes().ToArray();

            Assert.Equal(1, entityTypes.Length);
            Assert.Equal(true, contextModelBuilder.BuildModelCalled);
            Assert.Contains(entityTypes, et => et.ClrType == typeof(Vendor));
        }