mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-30 17:24:37 -05:00
Feature/schemacompare options (#798)
* Initial working code for schema compare options * Removing the unnecessary default value attribute * Cleaning up tests * Taking PR comments * Taking name change for Schema Compare Options --> Deployment Options * Remove parent to avoid circular reference (to avoid issues with serialization)
This commit is contained in:
@@ -43,16 +43,10 @@ CREATE TABLE [dbo].[table3]
|
||||
[col1] INT NULL,
|
||||
)";
|
||||
|
||||
private LiveConnectionHelper.TestConnectionResult GetLiveAutoCompleteTestObjects()
|
||||
{
|
||||
var result = LiveConnectionHelper.InitLiveConnectionInfo();
|
||||
return result;
|
||||
}
|
||||
|
||||
private async Task<Mock<RequestContext<SchemaCompareResult>>> SendAndValidateSchemaCompareRequestDacpacToDacpac()
|
||||
{
|
||||
|
||||
var result = GetLiveAutoCompleteTestObjects();
|
||||
var result = SchemaCompareTestUtils.GetLiveAutoCompleteTestObjects();
|
||||
var schemaCompareRequestContext = new Mock<RequestContext<SchemaCompareResult>>();
|
||||
schemaCompareRequestContext.Setup(x => x.SendResult(It.IsAny<SchemaCompareResult>())).Returns(Task.FromResult(new object()));
|
||||
|
||||
@@ -61,8 +55,8 @@ CREATE TABLE [dbo].[table3]
|
||||
SqlTestDb targetDb = await SqlTestDb.CreateNewAsync(TestServerType.OnPrem, false, null, TargetScript, "SchemaCompareTarget");
|
||||
try
|
||||
{
|
||||
string sourceDacpacFilePath = CreateDacpac(sourceDb);
|
||||
string targetDacpacFilePath = CreateDacpac(targetDb);
|
||||
string sourceDacpacFilePath = SchemaCompareTestUtils.CreateDacpac(sourceDb);
|
||||
string targetDacpacFilePath = SchemaCompareTestUtils.CreateDacpac(targetDb);
|
||||
|
||||
SchemaCompareEndpointInfo sourceInfo = new SchemaCompareEndpointInfo();
|
||||
SchemaCompareEndpointInfo targetInfo = new SchemaCompareEndpointInfo();
|
||||
@@ -86,8 +80,8 @@ CREATE TABLE [dbo].[table3]
|
||||
Assert.NotNull(schemaCompareOperation.ComparisonResult.Differences);
|
||||
|
||||
// cleanup
|
||||
VerifyAndCleanup(sourceDacpacFilePath);
|
||||
VerifyAndCleanup(targetDacpacFilePath);
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(sourceDacpacFilePath);
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(targetDacpacFilePath);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -100,7 +94,7 @@ CREATE TABLE [dbo].[table3]
|
||||
|
||||
private async Task<Mock<RequestContext<SchemaCompareResult>>> SendAndValidateSchemaCompareRequestDatabaseToDatabase()
|
||||
{
|
||||
var result = GetLiveAutoCompleteTestObjects();
|
||||
var result = SchemaCompareTestUtils.GetLiveAutoCompleteTestObjects();
|
||||
var schemaCompareRequestContext = new Mock<RequestContext<SchemaCompareResult>>();
|
||||
schemaCompareRequestContext.Setup(x => x.SendResult(It.IsAny<SchemaCompareResult>())).Returns(Task.FromResult(new object()));
|
||||
|
||||
@@ -143,7 +137,7 @@ CREATE TABLE [dbo].[table3]
|
||||
|
||||
private async Task<Mock<RequestContext<SchemaCompareResult>>> SendAndValidateSchemaCompareRequestDatabaseToDacpac()
|
||||
{
|
||||
var result = GetLiveAutoCompleteTestObjects();
|
||||
var result = SchemaCompareTestUtils.GetLiveAutoCompleteTestObjects();
|
||||
var schemaCompareRequestContext = new Mock<RequestContext<SchemaCompareResult>>();
|
||||
schemaCompareRequestContext.Setup(x => x.SendResult(It.IsAny<SchemaCompareResult>())).Returns(Task.FromResult(new object()));
|
||||
|
||||
@@ -152,7 +146,7 @@ CREATE TABLE [dbo].[table3]
|
||||
|
||||
try
|
||||
{
|
||||
string targetDacpacFilePath = CreateDacpac(targetDb);
|
||||
string targetDacpacFilePath = SchemaCompareTestUtils.CreateDacpac(targetDb);
|
||||
|
||||
SchemaCompareEndpointInfo sourceInfo = new SchemaCompareEndpointInfo();
|
||||
SchemaCompareEndpointInfo targetInfo = new SchemaCompareEndpointInfo();
|
||||
@@ -176,7 +170,7 @@ CREATE TABLE [dbo].[table3]
|
||||
Assert.NotNull(schemaCompareOperation.ComparisonResult.Differences);
|
||||
|
||||
// cleanup
|
||||
VerifyAndCleanup(targetDacpacFilePath);
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(targetDacpacFilePath);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -188,7 +182,7 @@ CREATE TABLE [dbo].[table3]
|
||||
|
||||
private async Task<Mock<RequestContext<SchemaCompareResult>>> SendAndValidateSchemaCompareGenerateScriptRequestDatabaseToDatabase()
|
||||
{
|
||||
var result = GetLiveAutoCompleteTestObjects();
|
||||
var result = SchemaCompareTestUtils.GetLiveAutoCompleteTestObjects();
|
||||
var schemaCompareRequestContext = new Mock<RequestContext<SchemaCompareResult>>();
|
||||
schemaCompareRequestContext.Setup(x => x.SendResult(It.IsAny<SchemaCompareResult>())).Returns(Task.FromResult(new object()));
|
||||
|
||||
@@ -232,7 +226,7 @@ CREATE TABLE [dbo].[table3]
|
||||
generateScriptOperation.Execute(TaskExecutionMode.Execute);
|
||||
|
||||
// cleanup
|
||||
VerifyAndCleanup(generateScriptParams.ScriptFilePath);
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(generateScriptParams.ScriptFilePath);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -244,7 +238,7 @@ CREATE TABLE [dbo].[table3]
|
||||
|
||||
private async Task<Mock<RequestContext<SchemaCompareResult>>> SendAndValidateSchemaCompareGenerateScriptRequestDacpacToDatabase()
|
||||
{
|
||||
var result = GetLiveAutoCompleteTestObjects();
|
||||
var result = SchemaCompareTestUtils.GetLiveAutoCompleteTestObjects();
|
||||
var schemaCompareRequestContext = new Mock<RequestContext<SchemaCompareResult>>();
|
||||
schemaCompareRequestContext.Setup(x => x.SendResult(It.IsAny<SchemaCompareResult>())).Returns(Task.FromResult(new object()));
|
||||
|
||||
@@ -255,7 +249,7 @@ CREATE TABLE [dbo].[table3]
|
||||
|
||||
try
|
||||
{
|
||||
string sourceDacpacFilePath = CreateDacpac(sourceDb);
|
||||
string sourceDacpacFilePath = SchemaCompareTestUtils.CreateDacpac(sourceDb);
|
||||
|
||||
SchemaCompareEndpointInfo sourceInfo = new SchemaCompareEndpointInfo();
|
||||
SchemaCompareEndpointInfo targetInfo = new SchemaCompareEndpointInfo();
|
||||
@@ -290,8 +284,8 @@ CREATE TABLE [dbo].[table3]
|
||||
generateScriptOperation.Execute(TaskExecutionMode.Execute);
|
||||
|
||||
// cleanup
|
||||
VerifyAndCleanup(generateScriptParams.ScriptFilePath);
|
||||
VerifyAndCleanup(sourceDacpacFilePath);
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(generateScriptParams.ScriptFilePath);
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(sourceDacpacFilePath);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -303,7 +297,7 @@ CREATE TABLE [dbo].[table3]
|
||||
|
||||
private async Task<Mock<RequestContext<SchemaCompareResult>>> SendAndValidateSchemaComparePublishChangesRequestDacpacToDatabase()
|
||||
{
|
||||
var result = GetLiveAutoCompleteTestObjects();
|
||||
var result = SchemaCompareTestUtils.GetLiveAutoCompleteTestObjects();
|
||||
var schemaCompareRequestContext = new Mock<RequestContext<SchemaCompareResult>>();
|
||||
schemaCompareRequestContext.Setup(x => x.SendResult(It.IsAny<SchemaCompareResult>())).Returns(Task.FromResult(new object()));
|
||||
|
||||
@@ -314,7 +308,7 @@ CREATE TABLE [dbo].[table3]
|
||||
|
||||
try
|
||||
{
|
||||
string sourceDacpacFilePath = CreateDacpac(sourceDb);
|
||||
string sourceDacpacFilePath = SchemaCompareTestUtils.CreateDacpac(sourceDb);
|
||||
|
||||
SchemaCompareEndpointInfo sourceInfo = new SchemaCompareEndpointInfo();
|
||||
SchemaCompareEndpointInfo targetInfo = new SchemaCompareEndpointInfo();
|
||||
@@ -362,7 +356,7 @@ CREATE TABLE [dbo].[table3]
|
||||
Assert.Empty(schemaCompareOperation.ComparisonResult.Differences);
|
||||
|
||||
// cleanup
|
||||
VerifyAndCleanup(sourceDacpacFilePath);
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(sourceDacpacFilePath);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -374,7 +368,7 @@ CREATE TABLE [dbo].[table3]
|
||||
|
||||
private async Task<Mock<RequestContext<SchemaCompareResult>>> SendAndValidateSchemaComparePublishChangesRequestDatabaseToDatabase()
|
||||
{
|
||||
var result = GetLiveAutoCompleteTestObjects();
|
||||
var result = SchemaCompareTestUtils.GetLiveAutoCompleteTestObjects();
|
||||
var schemaCompareRequestContext = new Mock<RequestContext<SchemaCompareResult>>();
|
||||
schemaCompareRequestContext.Setup(x => x.SendResult(It.IsAny<SchemaCompareResult>())).Returns(Task.FromResult(new object()));
|
||||
|
||||
@@ -440,9 +434,9 @@ CREATE TABLE [dbo].[table3]
|
||||
/// Verify the schema compare request comparing two dacpacs
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public void SchemaCompareDacpacToDacpac()
|
||||
public async void SchemaCompareDacpacToDacpac()
|
||||
{
|
||||
Assert.NotNull(SendAndValidateSchemaCompareRequestDacpacToDacpac());
|
||||
Assert.NotNull(await SendAndValidateSchemaCompareRequestDacpacToDacpac());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -490,7 +484,6 @@ CREATE TABLE [dbo].[table3]
|
||||
Assert.NotNull(await SendAndValidateSchemaComparePublishChangesRequestDacpacToDatabase());
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Verify the schema compare publish changes request comparing a database to a database
|
||||
/// </summary>
|
||||
@@ -499,38 +492,5 @@ CREATE TABLE [dbo].[table3]
|
||||
{
|
||||
Assert.NotNull(await SendAndValidateSchemaComparePublishChangesRequestDatabaseToDatabase());
|
||||
}
|
||||
|
||||
private void VerifyAndCleanup(string filePath)
|
||||
{
|
||||
// Verify it was created
|
||||
Assert.True(File.Exists(filePath));
|
||||
|
||||
// Remove the file
|
||||
if (File.Exists(filePath))
|
||||
{
|
||||
File.Delete(filePath);
|
||||
}
|
||||
}
|
||||
|
||||
private string CreateDacpac(SqlTestDb testdb)
|
||||
{
|
||||
var result = GetLiveAutoCompleteTestObjects();
|
||||
string folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "SchemaCompareTest");
|
||||
Directory.CreateDirectory(folderPath);
|
||||
|
||||
var extractParams = new ExtractParams
|
||||
{
|
||||
DatabaseName = testdb.DatabaseName,
|
||||
PackageFilePath = Path.Combine(folderPath, string.Format("{0}.dacpac", testdb.DatabaseName)),
|
||||
ApplicationName = "test",
|
||||
ApplicationVersion = "1.0.0.0"
|
||||
};
|
||||
|
||||
DacFxService service = new DacFxService();
|
||||
ExtractOperation operation = new ExtractOperation(extractParams, result.ConnectionInfo);
|
||||
service.PerformOperation(operation);
|
||||
|
||||
return extractParams.PackageFilePath;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user