Merging mssql-scripter changes (#430)

* Manual port of latest 'feature/mssq-scripter' branch

* Bumpnuget package SqlScriptPublishModel.140.2.0 to Microsoft.SqlServer.Management.SqlScriptPublishModel.140.2.3

* In TestDriver, fix the path to Microsoft.SqlTools.ServiceLayer.exe after move to .NET Core 2.0
This commit is contained in:
Brian O'Neill
2017-08-09 08:25:13 -07:00
committed by GitHub
parent 1cbc78a266
commit a4a27f9559
11 changed files with 350 additions and 62 deletions

View File

@@ -72,6 +72,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject[0],
excludeCriteria: new ScriptingObject[0],
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(6, results.Count());
@@ -83,6 +87,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject(),
excludeCriteria: new ScriptingObject(),
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(0, results.Count());
@@ -92,8 +100,12 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
public void ScriptingMatchIncludeName()
{
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject { Name = "Table1"},
includeCriteria: new ScriptingObject { Name = "Table1" },
excludeCriteria: null,
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(2, results.Count());
@@ -105,6 +117,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject { Name = "*" },
excludeCriteria: null,
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(6, results.Count());
@@ -115,6 +131,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject { Name = "Tab*" },
excludeCriteria: null,
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(4, results.Count());
@@ -126,6 +146,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject { Schema = "S2" },
excludeCriteria: null,
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(2, results.Count());
@@ -137,6 +161,25 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject { Schema = "*" },
excludeCriteria: null,
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(6, results.Count());
}
[Fact]
public void ScriptingMatchIncludeSchemaWildcardPostfixCriteria()
{
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject { Schema = "S*" },
excludeCriteria: null,
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(6, results.Count());
@@ -148,17 +191,25 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject { Schema = "S*" },
excludeCriteria: null,
includeSchemas: null,
excludeSchemas: null,
includeTypes: "Table",
excludeTypes: "View",
candidates: TestData);
Assert.Equal<int>(6, results.Count());
Assert.Equal<int>(4, results.Count());
}
[Fact]
public void ScriptingMatchIncludeType()
{
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject { Type="Table" },
includeCriteria: new ScriptingObject { Type = "Table" },
excludeCriteria: null,
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(4, results.Count());
@@ -170,6 +221,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject { Schema = "S1", Name = "Table1" },
excludeCriteria: null,
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(1, results.Count());
@@ -179,8 +234,12 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
public void ScriptingMatchIncludeSchemaAndType()
{
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: new ScriptingObject { Type="View", Schema = "S1" },
includeCriteria: new ScriptingObject { Type = "View", Schema = "S1" },
excludeCriteria: null,
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(2, results.Count());
@@ -192,6 +251,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: null,
excludeCriteria: new ScriptingObject { Name = "Table1" },
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(4, results.Count());
@@ -203,6 +266,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: null,
excludeCriteria: new ScriptingObject { Name = "*" },
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(0, results.Count());
@@ -213,6 +280,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: null,
excludeCriteria: new ScriptingObject { Name = "Tab*" },
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(4, results.Count());
@@ -224,6 +295,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: null,
excludeCriteria: new ScriptingObject { Schema = "S2" },
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(4, results.Count());
@@ -235,6 +310,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: null,
excludeCriteria: new ScriptingObject { Schema = "*" },
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(0, results.Count());
@@ -246,6 +325,10 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: null,
excludeCriteria: new ScriptingObject { Schema = "S*" },
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(0, results.Count());
@@ -257,20 +340,58 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: null,
excludeCriteria: new ScriptingObject { Type = "Table" },
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(2, results.Count());
}
[Fact]
public void ScriptingMatchExcludeNameAndSchemaCriteria()
{
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: null,
excludeCriteria: new ScriptingObject { Schema = "S1", Name = "Table1" },
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(5, results.Count());
}
[Fact]
public void ScriptingMatchExcludeNameAndSchema()
{
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: null,
excludeCriteria: new ScriptingObject { Schema = "S1", Name = "Table1" },
excludeCriteria: new ScriptingObject { Name = "Table1" },
includeSchemas: null,
excludeSchemas: "S1",
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(5, results.Count());
Assert.Equal<int>(1, results.Count());
}
[Fact]
public void ScriptingMatchExcludeSchemaAndTypeCriteria()
{
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: null,
excludeCriteria: new ScriptingObject { Type = "View", Schema = "S1" },
includeSchemas: null,
excludeSchemas: null,
includeTypes: null,
excludeTypes: null,
candidates: TestData);
Assert.Equal<int>(4, results.Count());
}
[Fact]
@@ -278,10 +399,14 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Scripting
{
IEnumerable<ScriptingObject> results = ScriptingObjectMatcher.Match(
includeCriteria: null,
excludeCriteria: new ScriptingObject { Type = "View", Schema = "S1" },
excludeCriteria: null,
includeSchemas: null,
excludeSchemas: "S1",
includeTypes: null,
excludeTypes: "View",
candidates: TestData);
Assert.Equal<int>(4, results.Count());
Assert.Equal<int>(2, results.Count());
}
}
}