internal static string GetDatabaseNameFromConnectionContext(Data.Tools.UnitTesting.TestSetup.Configuration.ConnectionContext connectionContext) { var cb = connectionContext.Provider.CreateConnectionStringBuilder(); cb.ConnectionString = connectionContext.ConnectionString; object dbName; if (!cb.TryGetValue("Initial Catalog", out dbName)) { throw new InvalidOperationException($"Cannot find databasename in connectionstring '{connectionContext.ConnectionString}'"); } return(dbName.ToString()); }
public void DropDatabase(Data.Tools.UnitTesting.TestSetup.Configuration.ConnectionContext connection) { // connect to master database and execute drop database statement for databasename in connectionstring of connection connection.ThrowIfNull("databaseDeployment"); using (var cn = connection.Provider.CreateConnection()) { cn.ConnectionString = connection.GetConnectionStringForDatabaseFromConnectionContext("master"); cn.Open(); using (var cm = cn.CreateCommand()) { cm.CommandText = $"DROP DATABASE [{GetDatabaseNameFromConnectionContext(connection)}]"; cm.ExecuteNonQuery(); } } }
public string GetNewUniqueDatabaseName(Data.Tools.UnitTesting.TestSetup.Configuration.ConnectionContext connection) { connection.ThrowIfNull("connection"); using (var cn = connection.Provider.CreateConnection()) { cn.ConnectionString = connection.GetConnectionStringForDatabaseFromConnectionContext("master"); cn.Open(); var dbName = $"{GetDatabaseNameFromConnectionContext(connection)}-{DateTime.UtcNow.ToString("o")}"; while (DoesDatabaseExist(cn, dbName)) { dbName = $"{GetDatabaseNameFromConnectionContext(connection)}-{DateTime.UtcNow.ToString("o")}"; } return(dbName); //return GetConnectionStringForDatabaseNameFromConnectionContext(connection, dbName); } }