mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-25 09:35:37 -05:00
Open schema compare generated script (#813)
This commit is contained in:
@@ -263,15 +263,13 @@ END
|
||||
{
|
||||
TargetDatabaseName = targetDb.DatabaseName,
|
||||
OperationId = schemaCompareOperation1.OperationId,
|
||||
ScriptFilePath = Path.Combine(folderPath, string.Concat(sourceDb.DatabaseName, "_", "Update.publish1.sql"))
|
||||
};
|
||||
|
||||
SchemaCompareGenerateScriptOperation generateScriptOperation1 = new SchemaCompareGenerateScriptOperation(generateScriptParams1, schemaCompareOperation1.ComparisonResult);
|
||||
generateScriptOperation1.Execute(TaskExecutionMode.Execute);
|
||||
generateScriptOperation1.Execute();
|
||||
|
||||
// validate script
|
||||
var filePath1 = Path.Combine(folderPath, string.Concat(sourceDb.DatabaseName, "_", "Update.publish1.sql"));
|
||||
Assert.True(File.Exists(filePath1) && string.IsNullOrEmpty(File.ReadAllText(filePath1)), "Should not be any differences");
|
||||
// validate script generation failed because there were no differences
|
||||
Assert.False(generateScriptOperation1.ScriptGenerationResult.Success);
|
||||
|
||||
var schemaCompareParams2 = new SchemaCompareParams
|
||||
{
|
||||
@@ -292,19 +290,15 @@ END
|
||||
{
|
||||
TargetDatabaseName = targetDb.DatabaseName,
|
||||
OperationId = schemaCompareOperation1.OperationId,
|
||||
ScriptFilePath = Path.Combine(folderPath, string.Concat(sourceDb.DatabaseName, "_", "Update.publish2.sql"))
|
||||
};
|
||||
|
||||
SchemaCompareGenerateScriptOperation generateScriptOperation2 = new SchemaCompareGenerateScriptOperation(generateScriptParams2, schemaCompareOperation2.ComparisonResult);
|
||||
generateScriptOperation2.Execute(TaskExecutionMode.Execute);
|
||||
|
||||
// validate script
|
||||
var filePath2 = Path.Combine(folderPath, string.Concat(sourceDb.DatabaseName, "_", "Update.publish2.sql"));
|
||||
Assert.True(File.Exists(filePath2) && !string.IsNullOrEmpty(File.ReadAllText(filePath2)), "Should have differences differences");
|
||||
generateScriptOperation2.Execute();
|
||||
|
||||
// validate script generation succeeded
|
||||
Assert.True(generateScriptOperation2.ScriptGenerationResult.Success);
|
||||
Assert.True(!string.IsNullOrEmpty(generateScriptOperation2.ScriptGenerationResult.Script), "Should have differences");
|
||||
// cleanup
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(generateScriptParams1.ScriptFilePath);
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(generateScriptParams2.ScriptFilePath);
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(sourceDacpacFilePath);
|
||||
}
|
||||
finally
|
||||
|
||||
@@ -174,8 +174,6 @@ CREATE TABLE [dbo].[table3]
|
||||
|
||||
SqlTestDb sourceDb = await SqlTestDb.CreateNewAsync(TestServerType.OnPrem, false, null, SourceScript, "SchemaCompareSource");
|
||||
SqlTestDb targetDb = await SqlTestDb.CreateNewAsync(TestServerType.OnPrem, false, null, TargetScript, "SchemaCompareTarget");
|
||||
string folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "SchemaCompareTest");
|
||||
Directory.CreateDirectory(folderPath);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -200,13 +198,9 @@ CREATE TABLE [dbo].[table3]
|
||||
{
|
||||
TargetDatabaseName = targetDb.DatabaseName,
|
||||
OperationId = schemaCompareOperation.OperationId,
|
||||
ScriptFilePath = Path.Combine(folderPath, string.Concat(sourceDb.DatabaseName, "_", "Update.publish.sql"))
|
||||
};
|
||||
|
||||
ValidateSchemaCompareScriptGenerationWithExcludeIncludeResults(schemaCompareOperation, generateScriptParams);
|
||||
|
||||
// cleanup
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(generateScriptParams.ScriptFilePath);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -252,13 +246,11 @@ CREATE TABLE [dbo].[table3]
|
||||
{
|
||||
TargetDatabaseName = targetDb.DatabaseName,
|
||||
OperationId = schemaCompareOperation.OperationId,
|
||||
ScriptFilePath = Path.Combine(folderPath, string.Concat(sourceDb.DatabaseName, "_", "Update.publish.sql"))
|
||||
};
|
||||
|
||||
ValidateSchemaCompareScriptGenerationWithExcludeIncludeResults(schemaCompareOperation, generateScriptParams);
|
||||
|
||||
// cleanup
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(generateScriptParams.ScriptFilePath);
|
||||
SchemaCompareTestUtils.VerifyAndCleanup(sourceDacpacFilePath);
|
||||
}
|
||||
finally
|
||||
@@ -456,9 +448,10 @@ CREATE TABLE [dbo].[table3]
|
||||
Assert.NotNull(schemaCompareOperation.ComparisonResult.Differences);
|
||||
|
||||
SchemaCompareGenerateScriptOperation generateScriptOperation = new SchemaCompareGenerateScriptOperation(generateScriptParams, schemaCompareOperation.ComparisonResult);
|
||||
generateScriptOperation.Execute(TaskExecutionMode.Execute);
|
||||
generateScriptOperation.Execute();
|
||||
|
||||
string initialScript = File.ReadAllText(generateScriptParams.ScriptFilePath);
|
||||
Assert.True(generateScriptOperation.ScriptGenerationResult.Success);
|
||||
string initialScript = generateScriptOperation.ScriptGenerationResult.Script;
|
||||
|
||||
// create Diff Entry from on Difference
|
||||
DiffEntry diff = SchemaCompareOperation.CreateDiffEntry(schemaCompareOperation.ComparisonResult.Differences.First(), null);
|
||||
@@ -479,9 +472,10 @@ CREATE TABLE [dbo].[table3]
|
||||
Assert.True(initial == afterExclude, $"Changes should be same again after excluding/including, before {initial}, now {afterExclude}");
|
||||
|
||||
generateScriptOperation = new SchemaCompareGenerateScriptOperation(generateScriptParams, schemaCompareOperation.ComparisonResult);
|
||||
generateScriptOperation.Execute(TaskExecutionMode.Execute);
|
||||
generateScriptOperation.Execute();
|
||||
|
||||
string afterExcludeScript = File.ReadAllText(generateScriptParams.ScriptFilePath);
|
||||
Assert.True(generateScriptOperation.ScriptGenerationResult.Success);
|
||||
string afterExcludeScript = generateScriptOperation.ScriptGenerationResult.Script;
|
||||
Assert.True(initialScript.Length > afterExcludeScript.Length, $"Script should be affected (less statements) exclude operation, before {initialScript}, now {afterExcludeScript}");
|
||||
|
||||
SchemaCompareNodeParams schemaCompareincludeNodeParams = new SchemaCompareNodeParams()
|
||||
@@ -499,9 +493,10 @@ CREATE TABLE [dbo].[table3]
|
||||
Assert.True(initial == afterInclude, $"Changes should be same again after excluding/including:{initial}, now {afterInclude}");
|
||||
|
||||
generateScriptOperation = new SchemaCompareGenerateScriptOperation(generateScriptParams, schemaCompareOperation.ComparisonResult);
|
||||
generateScriptOperation.Execute(TaskExecutionMode.Execute);
|
||||
generateScriptOperation.Execute();
|
||||
|
||||
string afterIncludeScript = File.ReadAllText(generateScriptParams.ScriptFilePath);
|
||||
Assert.True(generateScriptOperation.ScriptGenerationResult.Success);
|
||||
string afterIncludeScript = generateScriptOperation.ScriptGenerationResult.Script;
|
||||
Assert.True(initialScript.Length == afterIncludeScript.Length, $"Changes should be same as inital since we included what we excluded, before {initialScript}, now {afterIncludeScript}");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user