Address remaining comments for Object Management Database Handler (#2081)

This commit is contained in:
Cory Rivera
2023-06-01 11:02:59 -07:00
committed by GitHub
parent b45026967e
commit 0a5a7b4cc5
4 changed files with 167 additions and 129 deletions

View File

@@ -56,19 +56,19 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.ObjectManagement
// create and update
var parametersForCreation = ObjectManagementTestUtils.GetInitializeViewRequestParams(connectionResult.ConnectionInfo.OwnerUri, "master", true, SqlObjectType.Database, "", "");
await ObjectManagementTestUtils.SaveObject(parametersForCreation, testDatabase);
Assert.True(databaseExists(testDatabase.Name!, server), $"Expected database '{testDatabase.Name}' was not created succesfully");
Assert.That(DatabaseExists(testDatabase.Name!, server), $"Expected database '{testDatabase.Name}' was not created succesfully");
var parametersForUpdate = ObjectManagementTestUtils.GetInitializeViewRequestParams(connectionResult.ConnectionInfo.OwnerUri, "master", false, SqlObjectType.Database, "", objUrn);
await ObjectManagementTestUtils.SaveObject(parametersForUpdate, testDatabase);
// cleanup
await ObjectManagementTestUtils.DropObject(connectionResult.ConnectionInfo.OwnerUri, objUrn, throwIfNotExist: true);
Assert.False(databaseExists(testDatabase.Name!, server), $"Database '{testDatabase.Name}' was not dropped succesfully");
Assert.That(DatabaseExists(testDatabase.Name!, server), Is.False, $"Database '{testDatabase.Name}' was not dropped succesfully");
}
finally
{
// Cleanup using SMO if Drop didn't work
dropDatabase(server, testDatabase.Name!);
DropDatabase(server, testDatabase.Name!);
}
}
}
@@ -92,13 +92,13 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.ObjectManagement
{
var parametersForCreation = ObjectManagementTestUtils.GetInitializeViewRequestParams(connectionResult.ConnectionInfo.OwnerUri, "master", true, SqlObjectType.Database, "", "");
var script = await ObjectManagementTestUtils.ScriptObject(parametersForCreation, testDatabase);
Assert.True(!databaseExists(testDatabase.Name!, server), $"Database should not have been created for scripting operation");
Assert.True(script.ToLowerInvariant().Contains($"create database [{testDatabase.Name!.ToLowerInvariant()}]"));
Assert.That(DatabaseExists(testDatabase.Name!, server), Is.False, $"Database should not have been created for scripting operation");
Assert.That(script.ToLowerInvariant(), Does.Contain($"create database [{testDatabase.Name!.ToLowerInvariant()}]"));
}
finally
{
// Cleanup database on the off-chance that scripting somehow created the database
dropDatabase(server, testDatabase.Name!);
DropDatabase(server, testDatabase.Name!);
}
}
}
@@ -119,8 +119,8 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.ObjectManagement
}
catch (FailedOperationException ex)
{
Assert.NotNull(ex.InnerException, "Expected inner exception was null.");
Assert.True(ex.InnerException is MissingObjectException, $"Received unexpected inner exception type: {ex.InnerException!.GetType()}");
Assert.That(ex.InnerException, Is.Not.Null, "Expected inner exception was null.");
Assert.That(ex.InnerException, Is.InstanceOf<MissingObjectException>(), $"Received unexpected inner exception type: {ex.InnerException!.GetType()}");
}
}
@@ -143,26 +143,26 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.ObjectManagement
{
var parametersForCreation = ObjectManagementTestUtils.GetInitializeViewRequestParams(connectionResult.ConnectionInfo.OwnerUri, "master", true, SqlObjectType.Database, "", "");
await ObjectManagementTestUtils.SaveObject(parametersForCreation, testDatabase);
Assert.True(databaseExists(testDatabase.Name!, server), $"Expected database '{testDatabase.Name}' was not created succesfully");
Assert.That(DatabaseExists(testDatabase.Name!, server), $"Expected database '{testDatabase.Name}' was not created succesfully");
await ObjectManagementTestUtils.SaveObject(parametersForCreation, testDatabase);
Assert.Fail("Did not throw an exception when trying to create database with same name.");
}
catch (FailedOperationException ex)
{
Assert.NotNull(ex.InnerException, "Expected inner exception was null.");
Assert.True(ex.InnerException is ExecutionFailureException, $"Received unexpected inner exception type: {ex.InnerException!.GetType()}");
Assert.NotNull(ex.InnerException.InnerException, "Expected inner-inner exception was null.");
Assert.True(ex.InnerException.InnerException is SqlException, $"Received unexpected inner-inner exception type: {ex.InnerException.InnerException!.GetType()}");
Assert.That(ex.InnerException, Is.Not.Null, "Expected inner exception was null.");
Assert.That(ex.InnerException, Is.InstanceOf<ExecutionFailureException>(), $"Received unexpected inner exception type: {ex.InnerException!.GetType()}");
Assert.That(ex.InnerException.InnerException, Is.Not.Null, "Expected inner-inner exception was null.");
Assert.That(ex.InnerException.InnerException, Is.InstanceOf<SqlException>(), $"Received unexpected inner-inner exception type: {ex.InnerException.InnerException!.GetType()}");
}
finally
{
dropDatabase(server, testDatabase.Name!);
DropDatabase(server, testDatabase.Name!);
}
}
}
private bool databaseExists(string dbName, Server server)
private bool DatabaseExists(string dbName, Server server)
{
server.Databases.Refresh();
bool dbFound = false;
@@ -177,7 +177,7 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.ObjectManagement
return dbFound;
}
private void dropDatabase(Server server, string databaseName)
private void DropDatabase(Server server, string databaseName)
{
server.Databases.Refresh();
foreach (Database db in server.Databases)