public void CorrectlyInitializesADatabaseAndDoesNotSeed() { string serverName = @"(localdb)\mssqllocaldb"; string databaseName = string.Format("TestContext_{0}", Guid.NewGuid().ToString().Replace("-", string.Empty)); var expectedMigrationHistory = new[] { "201506161504528_InitialCreate" }; var config = new DbDeploymentManagerConfiguration() { Mode = DeploymentMode.InitializeOnly, TargetAssemblyPath = TestUtils.BuildTestContextTestAssemblyPath(1), Database = new DatabaseEndpoint { ServerName = serverName, DatabaseName = databaseName }, InitializationConfig = new InitializerConfigurationInfo { Type = "Galen.Ci.EntityFramework.Initialization.CreateSecureSeededDatabaseIfNotExists`2[[Galen.Ci.EntityFramework.Tests.TestContext.Data.TestDbContext, Galen.Ci.EntityFramework.Tests.TestContext], [Galen.Ci.EntityFramework.Tests.TestContext.Data.TestDataSeeder, Galen.Ci.EntityFramework.Tests.TestContext]], Galen.Ci.EntityFramework.Initialization", DisableForcedSeeding = true //Disable seeding } }; try { var sut = new DbDeploymentManager(config, new AssemblyLoader(), new SqlClientDbConnectionInfoBuilder()); sut.Deploy(); var migrationHistory = TestUtils.GetMigrationHistory(serverName, databaseName, "Galen.Ci.EntityFramework.Tests.TestContext.Data.Migrations.Configuration"); Assert.IsNotNull(migrationHistory); Assert.AreEqual(expectedMigrationHistory.Length, migrationHistory.Count()); Assert.IsTrue(expectedMigrationHistory.SequenceEqual(migrationHistory)); var startingRows = TestUtils.GetRows(serverName, databaseName, "dbo.BasicEntities"); //Now that we are deployed, let's delete some data and see if the auto-seeding re-adds it TestUtils.ExecuteSqlCommand(serverName, databaseName, "DELETE FROM dbo.BasicEntities WHERE ID = 2"); var postDeleteRows = TestUtils.GetRows(serverName, databaseName, "dbo.BasicEntities"); Assert.IsTrue(postDeleteRows.Count() == (startingRows.Count() - 1)); sut = new DbDeploymentManager(config, new AssemblyLoader(), new SqlClientDbConnectionInfoBuilder()); sut.Deploy(); var postSeedingRows = TestUtils.GetRows(serverName, databaseName, "dbo.BasicEntities"); Assert.IsTrue(postSeedingRows.Count() == (startingRows.Count() - 1)); Assert.AreEqual(1, TestUtils.GetDeploymentHistoryRowCount(serverName, databaseName, "Galen.Ci.EntityFramework.Tests.TestContext.Data.Migrations.Configuration")); } finally { //Be sure to clean up TestUtils.DropDatabase(config.Database.ServerName, config.Database.DatabaseName); } }