internal DatabaseInitializerTracker( bool databaseExists, bool modelCompatible = true, bool hasMetadata = true, MigrationsChecker checker = null) { _databaseExists = databaseExists; _mockInternalContext = new Mock <InternalContextForMock <TContext> > { CallBase = true }; _mockDatabaseOps = new Mock <DatabaseOperations>(); _mockDbContext = Mock.Get((TContext)_mockInternalContext.Object.Owner); _mockInternalContext.Setup(c => c.DatabaseOperations).Returns(_mockDatabaseOps.Object); _mockInternalContext.Setup(c => c.DefaultInitializer).Returns(new CreateDatabaseIfNotExists <DbContext>()); _mockInternalContext.Setup(c => c.CreateDatabase(It.IsAny <ObjectContext>())).Callback( () => { _databaseExists = true; _operations.Append("CreateDatabase "); }); _mockDatabaseOps.Setup(d => d.Create(It.IsAny <ObjectContext>())).Callback( () => { _databaseExists = true; _operations.Append("Create "); }); _mockDatabaseOps.Setup(d => d.Exists(It.IsAny <ObjectContext>())).Callback(() => _operations.Append("Exists ")).Returns( DatabaseExists); _mockDatabaseOps.Setup(d => d.DeleteIfExists(It.IsAny <ObjectContext>())).Callback(() => _operations.Append("DeleteIfExists ")). Returns(DeleteIfExists); _mockInternalContext.Setup(c => c.UseTempObjectContext()).Callback(() => _operations.Append("UseTempObjectContext ")); _mockInternalContext.Setup(c => c.DisposeTempObjectContext()).Callback(() => _operations.Append("DisposeTempObjectContext ")); _mockInternalContext.Setup(c => c.SaveMetadataToDatabase()).Callback(() => _operations.Append("SaveMetadataToDatabase ")); _mockInternalContext.Setup(c => c.CompatibleWithModel(It.IsAny <bool>())).Callback( (bool throwIfNoMetadata) => { if (!hasMetadata && throwIfNoMetadata) { throw Error.Database_NoDatabaseMetadata(); } }).Returns(modelCompatible); _mockInternalContext.Setup(c => c.CreateObjectContextForDdlOps()).Returns(new Mock <ClonedObjectContext>().Object); _mockInternalContext.SetupGet(c => c.ProviderName).Returns("Dummy.Data.Provider"); _mockStrategy = new Mock <TInitializer>(checker) { CallBase = true }; _mockStrategy.Protected().Setup("Seed", ItExpr.IsAny <TContext>()).Callback(() => _operations.Append("Seed ")); }
internal CreateDatabaseIfNotExists(MigrationsChecker migrationsChecker) { _migrationsChecker = migrationsChecker ?? new MigrationsChecker(); }
internal DropCreateDatabaseAlways(MigrationsChecker migrationsChecker) { _migrationsChecker = migrationsChecker ?? new MigrationsChecker(); }
internal DropCreateDatabaseIfModelChanges(MigrationsChecker migrationsChecker) { _migrationsChecker = migrationsChecker ?? new MigrationsChecker(); }