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)); }
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); }
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); }
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)); }