mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-13 17:23:02 -05:00
Add support for adding system db references as PackageReference (#2078)
* Expose adding system db references as PackageReference * update nuget
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
<PackageReference Update="Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider" Version="1.1.1" />
|
||||
<PackageReference Update="Microsoft.SqlServer.Management.SmoMetadataProvider" Version="170.12.0" />
|
||||
<PackageReference Update="Microsoft.SqlServer.DacFx" Version="162.0.34-preview" />
|
||||
<PackageReference Update="Microsoft.SqlServer.DacFx.Projects" Version="162.1.20-alpha" />
|
||||
<PackageReference Update="Microsoft.SqlServer.DacFx.Projects" Version="162.1.37-alpha" />
|
||||
<PackageReference Update="Microsoft.Azure.Kusto.Data" Version="9.0.4" />
|
||||
<PackageReference Update="Microsoft.Azure.Kusto.Language" Version="9.0.4" />
|
||||
<PackageReference Update="Microsoft.SqlServer.Assessment" Version="[1.1.17]" />
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -18,6 +18,11 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts
|
||||
/// Type of system database
|
||||
/// </summary>
|
||||
public SystemDatabase SystemDatabase { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Type of reference - ArtifactReference or PackageReference
|
||||
/// </summary>
|
||||
public ReferenceType ReferenceType { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -385,7 +385,8 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects
|
||||
new SystemDatabaseReference(
|
||||
requestParams.SystemDatabase,
|
||||
requestParams.SuppressMissingDependencies,
|
||||
requestParams.DatabaseLiteral)),
|
||||
requestParams.DatabaseLiteral,
|
||||
requestParams.ReferenceType)),
|
||||
requestContext);
|
||||
}
|
||||
|
||||
|
||||
@@ -527,21 +527,40 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects
|
||||
{
|
||||
var (service, projectUri, _, _) = await SetUpDatabaseReferenceTest();
|
||||
|
||||
// Artifact reference
|
||||
MockRequest<ResultStatus> 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]
|
||||
|
||||
Reference in New Issue
Block a user