diff --git a/Packages.props b/Packages.props index ecac6949..f2568e1d 100644 --- a/Packages.props +++ b/Packages.props @@ -23,7 +23,7 @@ - + diff --git a/bin/nuget/Microsoft.SqlServer.DacFx.Projects.161.8416.0-alpha.nupkg b/bin/nuget/Microsoft.SqlServer.DacFx.Projects.161.8416.0-alpha.nupkg deleted file mode 100644 index f2d96221..00000000 Binary files a/bin/nuget/Microsoft.SqlServer.DacFx.Projects.161.8416.0-alpha.nupkg and /dev/null differ diff --git a/bin/nuget/Microsoft.SqlServer.DacFx.Projects.161.8420.0-alpha.nupkg b/bin/nuget/Microsoft.SqlServer.DacFx.Projects.161.8420.0-alpha.nupkg new file mode 100644 index 00000000..d829de09 Binary files /dev/null and b/bin/nuget/Microsoft.SqlServer.DacFx.Projects.161.8420.0-alpha.nupkg differ diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/GetDatabaseReferences.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/GetDatabaseReferences.cs index 09d1ac68..1bf393b3 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/GetDatabaseReferences.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/GetDatabaseReferences.cs @@ -11,6 +11,9 @@ using Microsoft.SqlTools.ServiceLayer.Utility; namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts { + /// + /// Get all the database references in a project + /// public class GetDatabaseReferencesRequest { public static readonly RequestType Type = RequestType.Create("sqlProjects/getDatabaseReferences"); diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Folders/GetFolders.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Folders/GetFolders.cs index 12df1c57..a67e5f8d 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Folders/GetFolders.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Folders/GetFolders.cs @@ -10,6 +10,9 @@ using Microsoft.SqlTools.ServiceLayer.Utility; namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts { + /// + /// Get all the folders in a project + /// public class GetFoldersRequest { public static readonly RequestType Type = RequestType.Create("sqlProjects/getFolders"); diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/AddNoneScript.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/AddNoneItem.cs similarity index 79% rename from src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/AddNoneScript.cs rename to src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/AddNoneItem.cs index 99bc39b1..dae66e34 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/AddNoneScript.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/AddNoneItem.cs @@ -9,10 +9,10 @@ using Microsoft.SqlTools.ServiceLayer.Utility; namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts { /// - /// Add a SQL object script to a project + /// Add a None item to a project /// - public class AddNoneScriptRequest + public class AddNoneItemRequest { - public static readonly RequestType Type = RequestType.Create("sqlProjects/addNoneScript"); + public static readonly RequestType Type = RequestType.Create("sqlProjects/addNoneItem"); } } diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/DeleteNoneScript.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/DeleteNoneItem.cs similarity index 78% rename from src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/DeleteNoneScript.cs rename to src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/DeleteNoneItem.cs index 6940569b..85caae0c 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/DeleteNoneScript.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/DeleteNoneItem.cs @@ -4,15 +4,15 @@ // using Microsoft.SqlTools.Hosting.Protocol.Contracts; - using Microsoft.SqlTools.ServiceLayer.Utility; + namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts { /// - /// Delete a SQL object script from a project + /// Delete a None item from a project /// - public class DeleteNoneScriptRequest + public class DeleteNoneItemRequest { - public static readonly RequestType Type = RequestType.Create("sqlProjects/deleteNoneScript"); + public static readonly RequestType Type = RequestType.Create("sqlProjects/deleteNoneItem"); } } diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/ExcludeNoneScript.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/ExcludeNoneItem.cs similarity index 77% rename from src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/ExcludeNoneScript.cs rename to src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/ExcludeNoneItem.cs index c96d1bda..2402063c 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/ExcludeNoneScript.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/ExcludeNoneItem.cs @@ -9,10 +9,10 @@ using Microsoft.SqlTools.ServiceLayer.Utility; namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts { /// - /// Exclude a SQL object script from a project + /// Exclude a None item from a project /// - public class ExcludeNoneScriptRequest + public class ExcludeNoneItemRequest { - public static readonly RequestType Type = RequestType.Create("sqlProjects/excludeNoneScript"); + public static readonly RequestType Type = RequestType.Create("sqlProjects/excludeNoneItem"); } } diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/GetNoneScripts.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/GetNoneItems.cs similarity index 72% rename from src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/GetNoneScripts.cs rename to src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/GetNoneItems.cs index b2eeef89..45b07321 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/GetNoneScripts.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/GetNoneItems.cs @@ -3,14 +3,15 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // -#nullable disable - using Microsoft.SqlTools.Hosting.Protocol.Contracts; namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts { - public class GetNoneScriptsRequest + /// + /// Get all the None items in a project + /// + public class GetNoneItemsRequest { - public static readonly RequestType Type = RequestType.Create("sqlProjects/getNoneScripts"); + public static readonly RequestType Type = RequestType.Create("sqlProjects/getNoneItems"); } } diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/MoveNoneScript.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/MoveNoneItem.cs similarity index 78% rename from src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/MoveNoneScript.cs rename to src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/MoveNoneItem.cs index 72835c91..71aa18e5 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneScripts/MoveNoneScript.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/NoneItems/MoveNoneItem.cs @@ -3,18 +3,16 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // -#nullable disable - using Microsoft.SqlTools.Hosting.Protocol.Contracts; using Microsoft.SqlTools.ServiceLayer.Utility; namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts { /// - /// Move a SQL object script in a project + /// Move a None item in a project /// - public class MoveNoneScriptRequest + public class MoveNoneItemRequest { - public static readonly RequestType Type = RequestType.Create("sqlProjects/moveNoneScript"); + public static readonly RequestType Type = RequestType.Create("sqlProjects/moveNoneItem"); } } diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/PrePostDeploymentScripts/GetPostDeploymentScripts.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/PrePostDeploymentScripts/GetPostDeploymentScripts.cs index f8c214f9..a3e5bfcf 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/PrePostDeploymentScripts/GetPostDeploymentScripts.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/PrePostDeploymentScripts/GetPostDeploymentScripts.cs @@ -3,12 +3,13 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // -#nullable disable - using Microsoft.SqlTools.Hosting.Protocol.Contracts; namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts { + /// + /// Get all the post-deployment scripts in a project + /// public class GetPostDeploymentScriptsRequest { public static readonly RequestType Type = RequestType.Create("sqlProjects/getPostDeploymentScripts"); diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/PrePostDeploymentScripts/GetPreDeploymentScripts.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/PrePostDeploymentScripts/GetPreDeploymentScripts.cs index 44b14529..e29c2868 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/PrePostDeploymentScripts/GetPreDeploymentScripts.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/PrePostDeploymentScripts/GetPreDeploymentScripts.cs @@ -3,12 +3,13 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // -#nullable disable - using Microsoft.SqlTools.Hosting.Protocol.Contracts; namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts { + /// + /// Get all the pre-deployment scripts in a project + /// public class GetPreDeploymentScriptsRequest { public static readonly RequestType Type = RequestType.Create("sqlProjects/getPreDeploymentScripts"); diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/GetProjectProperties.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/GetProjectProperties.cs index cb3033a8..bb59be09 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/GetProjectProperties.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/GetProjectProperties.cs @@ -3,6 +3,7 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. // +using Microsoft.SqlServer.Dac.Projects; using Microsoft.SqlTools.Hosting.Protocol.Contracts; using Microsoft.SqlTools.ServiceLayer.Utility; @@ -54,5 +55,14 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts /// public string? DatabaseSource { get; set; } + /// + /// Style of the .sqlproj file - SdkStyle or LegacyStyle + /// + public ProjectType ProjectStyle { get; set; } + + /// + /// Database Schema Provider, in the format "Microsoft.Data.Tools.Schema.Sql.SqlXYZDatabaseSchemaProvider" + /// + public string DatabaseSchemaProvider { get; set; } } } diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/SqlCmdVariables/GetSqlCmdVariables.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/SqlCmdVariables/GetSqlCmdVariables.cs index 1b5c554d..1cb87459 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/SqlCmdVariables/GetSqlCmdVariables.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/SqlCmdVariables/GetSqlCmdVariables.cs @@ -11,6 +11,9 @@ using Microsoft.SqlTools.ServiceLayer.Utility; namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts { + /// + /// Get all the SQLCMD variables in a project + /// public class GetSqlCmdVariablesRequest { public static readonly RequestType Type = RequestType.Create("sqlProjects/getSqlCmdVariables"); diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/SqlObjectScripts/GetSqlObjectScripts.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/SqlObjectScripts/GetSqlObjectScripts.cs index 71d1813a..b6af3a62 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/SqlObjectScripts/GetSqlObjectScripts.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/SqlObjectScripts/GetSqlObjectScripts.cs @@ -10,6 +10,9 @@ using Microsoft.SqlTools.ServiceLayer.Utility; namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts { + /// + /// Get all the SQL object scripts in a project + /// public class GetSqlObjectScriptsRequest { public static readonly RequestType Type = RequestType.Create("sqlProjects/getSqlObjectScripts"); diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs index cccc077e..6ecda7f2 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs @@ -70,11 +70,11 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects serviceHost.SetRequestHandler(MovePostDeploymentScriptRequest.Type, HandleMovePostDeploymentScriptRequest, isParallelProcessingSupported: false); // None script functions - serviceHost.SetRequestHandler(GetNoneScriptsRequest.Type, HandleGetNoneScriptsRequest, isParallelProcessingSupported: true); - serviceHost.SetRequestHandler(AddNoneScriptRequest.Type, HandleAddNoneScriptRequest, isParallelProcessingSupported: false); - serviceHost.SetRequestHandler(DeleteNoneScriptRequest.Type, HandleDeleteNoneScriptRequest, isParallelProcessingSupported: false); - serviceHost.SetRequestHandler(ExcludeNoneScriptRequest.Type, HandleExcludeNoneScriptRequest, isParallelProcessingSupported: false); - serviceHost.SetRequestHandler(MoveNoneScriptRequest.Type, HandleMoveNoneScriptRequest, isParallelProcessingSupported: false); + serviceHost.SetRequestHandler(GetNoneItemsRequest.Type, HandleGetNoneItemsRequest, isParallelProcessingSupported: true); + serviceHost.SetRequestHandler(AddNoneItemRequest.Type, HandleAddNoneItemRequest, isParallelProcessingSupported: false); + serviceHost.SetRequestHandler(DeleteNoneItemRequest.Type, HandleDeleteNoneItemRequest, isParallelProcessingSupported: false); + serviceHost.SetRequestHandler(ExcludeNoneItemRequest.Type, HandleExcludeNoneItemRequest, isParallelProcessingSupported: false); + serviceHost.SetRequestHandler(MoveNoneItemRequest.Type, HandleMoveNoneItemRequest, isParallelProcessingSupported: false); // Folder functions serviceHost.SetRequestHandler(GetFoldersRequest.Type, HandleGetFoldersRequest, isParallelProcessingSupported: true); @@ -139,18 +139,20 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects { await RunWithErrorHandling(() => { - SqlProjectProperties props = GetProject(requestParams.ProjectUri).Properties; + SqlProject project = GetProject(requestParams.ProjectUri); return new GetProjectPropertiesResult() { Success = true, ErrorMessage = null, - ProjectGuid = props.ProjectGuid, - Configuration = props.Configuration, - Platform = props.Platform, - OutputPath = props.OutputPath, - DefaultCollation = props.DefaultCollation, - DatabaseSource = props.DatabaseSource, + ProjectGuid = project.Properties.ProjectGuid, + Configuration = project.Properties.Configuration, + Platform = project.Properties.Platform, + OutputPath = project.Properties.OutputPath, + DefaultCollation = project.Properties.DefaultCollation, + DatabaseSource = project.Properties.DatabaseSource, + ProjectStyle = project.SqlProjStyle, + DatabaseSchemaProvider = project.DatabaseSchemaProvider }; }, requestContext); } @@ -273,7 +275,7 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects #region None script functions - internal async Task HandleGetNoneScriptsRequest(SqlProjectParams requestParams, RequestContext requestContext) + internal async Task HandleGetNoneItemsRequest(SqlProjectParams requestParams, RequestContext requestContext) { await RunWithErrorHandling(() => { @@ -286,22 +288,22 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects }, requestContext); } - internal async Task HandleAddNoneScriptRequest(SqlProjectScriptParams requestParams, RequestContext requestContext) + internal async Task HandleAddNoneItemRequest(SqlProjectScriptParams requestParams, RequestContext requestContext) { await RunWithErrorHandling(() => GetProject(requestParams.ProjectUri).NoneScripts.Add(new NoneScript(requestParams.Path!)), requestContext); } - internal async Task HandleDeleteNoneScriptRequest(SqlProjectScriptParams requestParams, RequestContext requestContext) + internal async Task HandleDeleteNoneItemRequest(SqlProjectScriptParams requestParams, RequestContext requestContext) { await RunWithErrorHandling(() => GetProject(requestParams.ProjectUri).NoneScripts.Delete(requestParams.Path!), requestContext); } - internal async Task HandleExcludeNoneScriptRequest(SqlProjectScriptParams requestParams, RequestContext requestContext) + internal async Task HandleExcludeNoneItemRequest(SqlProjectScriptParams requestParams, RequestContext requestContext) { await RunWithErrorHandling(() => GetProject(requestParams.ProjectUri).NoneScripts.Exclude(requestParams.Path!), requestContext); } - internal async Task HandleMoveNoneScriptRequest(MoveItemParams requestParams, RequestContext requestContext) + internal async Task HandleMoveNoneItemRequest(MoveItemParams requestParams, RequestContext requestContext) { await RunWithErrorHandling(() => GetProject(requestParams.ProjectUri).NoneScripts.Move(requestParams.Path, requestParams.DestinationPath), requestContext); } diff --git a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs index 1f53b387..fc414d13 100644 --- a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs +++ b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs @@ -190,12 +190,12 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects } [Test] - public async Task TestNoneScriptOperations() + public async Task TestNoneItemOperations() { // Setup SqlProjectsService service = new(); string projectUri = await service.CreateSqlProject(); - Assert.AreEqual(0, service.Projects[projectUri].NoneScripts.Count, "Baseline number of NoneScripts"); + Assert.AreEqual(0, service.Projects[projectUri].NoneScripts.Count, "Baseline number of NoneItems"); // Validate adding a None script MockRequest requestMock = new(); @@ -208,49 +208,49 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects Assert.IsTrue(File.Exists(absolutePath), $"{absolutePath} expected to be on disk"); - await service.HandleAddNoneScriptRequest(new SqlProjectScriptParams() + await service.HandleAddNoneItemRequest(new SqlProjectScriptParams() { ProjectUri = projectUri, Path = relativePath }, requestMock.Object); - requestMock.AssertSuccess(nameof(service.HandleAddNoneScriptRequest)); - Assert.AreEqual(1, service.Projects[projectUri].NoneScripts.Count, "NoneScripts count after add"); - Assert.IsTrue(service.Projects[projectUri].NoneScripts.Contains(relativePath), $"NoneScripts expected to contain {relativePath}"); + requestMock.AssertSuccess(nameof(service.HandleAddNoneItemRequest)); + Assert.AreEqual(1, service.Projects[projectUri].NoneScripts.Count, "NoneItems count after add"); + Assert.IsTrue(service.Projects[projectUri].NoneScripts.Contains(relativePath), $"NoneItems expected to contain {relativePath}"); // Validate getting a list of the None scripts MockRequest getMock = new(); - await service.HandleGetNoneScriptsRequest(new SqlProjectParams() + await service.HandleGetNoneItemsRequest(new SqlProjectParams() { ProjectUri = projectUri }, getMock.Object); - getMock.AssertSuccess(nameof(service.HandleGetNoneScriptsRequest)); + getMock.AssertSuccess(nameof(service.HandleGetNoneItemsRequest)); Assert.AreEqual(1, getMock.Result.Scripts.Length); Assert.AreEqual(relativePath, getMock.Result.Scripts[0]); // Validate excluding a None script requestMock = new(); - await service.HandleExcludeNoneScriptRequest(new SqlProjectScriptParams() + await service.HandleExcludeNoneItemRequest(new SqlProjectScriptParams() { ProjectUri = projectUri, Path = relativePath }, requestMock.Object); - requestMock.AssertSuccess(nameof(service.HandleExcludeNoneScriptRequest)); - Assert.AreEqual(0, service.Projects[projectUri].NoneScripts.Count, "NoneScripts count after exclude"); + requestMock.AssertSuccess(nameof(service.HandleExcludeNoneItemRequest)); + Assert.AreEqual(0, service.Projects[projectUri].NoneScripts.Count, "NoneItems count after exclude"); Assert.IsTrue(File.Exists(absolutePath), $"{absolutePath} expected to still exist on disk"); // Re-add to set up for Delete requestMock = new(); - await service.HandleAddNoneScriptRequest(new SqlProjectScriptParams() + await service.HandleAddNoneItemRequest(new SqlProjectScriptParams() { ProjectUri = projectUri, Path = relativePath }, requestMock.Object); - requestMock.AssertSuccess(nameof(service.HandleAddNoneScriptRequest)); - Assert.AreEqual(1, service.Projects[projectUri].NoneScripts.Count, "NoneScripts count after re-add"); + requestMock.AssertSuccess(nameof(service.HandleAddNoneItemRequest)); + Assert.AreEqual(1, service.Projects[projectUri].NoneScripts.Count, "NoneItems count after re-add"); // Validate moving a None script string movedScriptRelativePath = @"SubPath\RenamedNoneIncludeFile.json"; @@ -258,27 +258,27 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects Directory.CreateDirectory(Path.GetDirectoryName(movedScriptAbsolutePath)!); requestMock = new(); - await service.HandleMoveNoneScriptRequest(new MoveItemParams() + await service.HandleMoveNoneItemRequest(new MoveItemParams() { ProjectUri = projectUri, Path = relativePath, DestinationPath = movedScriptRelativePath }, requestMock.Object); - requestMock.AssertSuccess(nameof(service.HandleMoveNoneScriptRequest)); + requestMock.AssertSuccess(nameof(service.HandleMoveNoneItemRequest)); Assert.IsTrue(File.Exists(movedScriptAbsolutePath), "Script should exist at new location"); - Assert.AreEqual(1, service.Projects[projectUri].NoneScripts.Count, "NoneScripts count after move"); + Assert.AreEqual(1, service.Projects[projectUri].NoneScripts.Count, "NoneItems count after move"); // Validate deleting a None script requestMock = new(); - await service.HandleDeleteNoneScriptRequest(new SqlProjectScriptParams() + await service.HandleDeleteNoneItemRequest(new SqlProjectScriptParams() { ProjectUri = projectUri, Path = movedScriptRelativePath }, requestMock.Object); - requestMock.AssertSuccess(nameof(service.HandleDeleteNoneScriptRequest)); - Assert.AreEqual(0, service.Projects[projectUri].NoneScripts.Count, "NoneScripts count after delete"); + requestMock.AssertSuccess(nameof(service.HandleDeleteNoneItemRequest)); + Assert.AreEqual(0, service.Projects[projectUri].NoneScripts.Count, "NoneItems count after delete"); Assert.IsFalse(File.Exists(movedScriptAbsolutePath), $"{movedScriptAbsolutePath} expected to have been deleted from disk"); } @@ -840,6 +840,8 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects Assert.AreEqual(@"bin\Debug\", mock.Result.OutputPath); // default value is normalized to Windows slashes Assert.AreEqual("SQL_Latin1_General_CP1_CI_AS", mock.Result.DefaultCollation); Assert.IsNull(mock.Result.DatabaseSource, nameof(mock.Result.DatabaseSource)); // validate DatabaseSource is null when the tag isn't present + Assert.AreEqual(ProjectType.SdkStyle, mock.Result.ProjectStyle); + Assert.AreEqual("Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider", mock.Result.DatabaseSchemaProvider); // Validate that DatabaseSource can be set when the tag doesn't exist