Open schema compare generated script (#813)

This commit is contained in:
kisantia
2019-05-20 14:14:50 -07:00
committed by GitHub
parent 151a2de625
commit e68b6d62aa
5 changed files with 39 additions and 44 deletions

View File

@@ -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

View File

@@ -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}");
}