diff --git a/Packages.props b/Packages.props index 2036741f..85b958c9 100644 --- a/Packages.props +++ b/Packages.props @@ -23,7 +23,7 @@ - + diff --git a/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.20-alpha.nupkg b/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.20-alpha.nupkg deleted file mode 100644 index 7fb4eb03..00000000 Binary files a/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.20-alpha.nupkg and /dev/null differ diff --git a/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.37-alpha.nupkg b/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.37-alpha.nupkg new file mode 100644 index 00000000..31b87483 Binary files /dev/null and b/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.37-alpha.nupkg differ diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/AddSystemDatabaseReference.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/AddSystemDatabaseReference.cs index 2beb7ae8..eaa34d84 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/AddSystemDatabaseReference.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/AddSystemDatabaseReference.cs @@ -18,6 +18,11 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts /// Type of system database /// public SystemDatabase SystemDatabase { get; set; } + + /// + /// Type of reference - ArtifactReference or PackageReference + /// + public ReferenceType ReferenceType { get; set; } } /// diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs index 64a26aaf..de85ca33 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs @@ -385,7 +385,8 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects new SystemDatabaseReference( requestParams.SystemDatabase, requestParams.SuppressMissingDependencies, - requestParams.DatabaseLiteral)), + requestParams.DatabaseLiteral, + requestParams.ReferenceType)), requestContext); } diff --git a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs index 49f25868..6d659c5b 100644 --- a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs +++ b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs @@ -527,21 +527,40 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects { var (service, projectUri, _, _) = await SetUpDatabaseReferenceTest(); + // Artifact reference MockRequest requestMock = new(); await service.HandleAddSystemDatabaseReferenceRequest(new AddSystemDatabaseReferenceParams() { ProjectUri = projectUri, SystemDatabase = SystemDatabase.MSDB, DatabaseLiteral = "EmEssDeeBee", - SuppressMissingDependencies = false + SuppressMissingDependencies = false, + ReferenceType = ReferenceType.ArtifactReference }, requestMock.Object); requestMock.AssertSuccess(nameof(service.HandleAddSystemDatabaseReferenceRequest)); - Assert.AreEqual(1, service.Projects[projectUri].DatabaseReferences.Count, "Database references after adding system db reference"); - SystemDatabaseReference systemDbRef = (SystemDatabaseReference)service.Projects[projectUri].DatabaseReferences.Get(SystemDatabase.MSDB.ToString()); - Assert.AreEqual(SystemDatabase.MSDB, systemDbRef.SystemDb, "Referenced system DB"); - Assert.AreEqual("EmEssDeeBee", systemDbRef.DatabaseVariableLiteralName); - Assert.IsFalse(systemDbRef.SuppressMissingDependencies, nameof(systemDbRef.SuppressMissingDependencies)); + Assert.AreEqual(1, service.Projects[projectUri].DatabaseReferences.Count, "Database references after adding system db reference to msdb"); + SystemDatabaseReference msdbRef = (SystemDatabaseReference)service.Projects[projectUri].DatabaseReferences.Get(SystemDatabase.MSDB.ToString()); + Assert.AreEqual(SystemDatabase.MSDB, msdbRef.SystemDb, "Referenced system DB"); + Assert.AreEqual("EmEssDeeBee", msdbRef.DatabaseVariableLiteralName); + Assert.IsFalse(msdbRef.SuppressMissingDependencies, nameof(msdbRef.SuppressMissingDependencies)); + Assert.AreEqual(ReferenceType.ArtifactReference, msdbRef.ReferenceType); + + // Package reference + await service.HandleAddSystemDatabaseReferenceRequest(new AddSystemDatabaseReferenceParams() + { + ProjectUri = projectUri, + SystemDatabase = SystemDatabase.Master, + SuppressMissingDependencies = false, + ReferenceType = ReferenceType.PackageReference + }, requestMock.Object); + + requestMock.AssertSuccess(nameof(service.HandleAddSystemDatabaseReferenceRequest)); + Assert.AreEqual(2, service.Projects[projectUri].DatabaseReferences.Count, "Database references after adding system db reference to master"); + SystemDatabaseReference masterRef = (SystemDatabaseReference)service.Projects[projectUri].DatabaseReferences.Get(SystemDatabase.Master.ToString()); + Assert.AreEqual(SystemDatabase.Master, masterRef.SystemDb, "Referenced system DB"); + Assert.IsFalse(masterRef.SuppressMissingDependencies, nameof(masterRef.SuppressMissingDependencies)); + Assert.AreEqual(ReferenceType.PackageReference, masterRef.ReferenceType); } [Test]