public void CorrectlyInitializesADatabase()
{
string serverName = @"(localdb)\mssqllocaldb";
string databaseName = $"GalenTest_{Guid.NewGuid():N}";
var expectedMigrationHistory = new[]
{
"201404181533201_InitialCreate",
"201404181719410_AddedAddresInfoToCustomer",
"201404181726158_MoveAddressInformationIntoContactInfo",
"201404181729406_AddedRowVersionToDomainObjectBase",
"201404181740359_AddedMultiplePropertiesToCustomer",
};
var config = new DbDeploymentManagerConfiguration()
{
Mode=DeploymentMode.InitializeOnly,
TargetAssemblyPath=TestUtils.BuildTestAssemblyPath(3),
Database=new DatabaseEndpoint { ServerName=serverName, DatabaseName=databaseName },
InitializationConfig=new InitializerConfigurationInfo
{
Type = "Pinpoint.Test.Data.Initializers.TestContextCreateDatabaseIfNotExists"
}
};
try
{
var sut = new DbDeploymentManager(config, new AssemblyLoader(), new SqlClientDbConnectionInfoBuilder());
sut.Deploy();
var migrationHistory = TestUtils.GetMigrationHistory(serverName, databaseName, "Pinpoint.Test.Data.Migrations.Configuration");
Assert.IsNotNull(migrationHistory);
Assert.AreEqual(expectedMigrationHistory.Length, migrationHistory.Count());
Assert.IsTrue(expectedMigrationHistory.SequenceEqual(migrationHistory));
Assert.AreEqual(1,
TestUtils.GetDeploymentHistoryRowCount(serverName, databaseName, "Pinpoint.Test.Data.Migrations.Configuration"));
}
finally
{
//Be sure to clean up
TestUtils.DropDatabase(config.Database.ServerName, config.Database.DatabaseName);
}
}