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.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider" Version="1.1.1" />
|
||||||
<PackageReference Update="Microsoft.SqlServer.Management.SmoMetadataProvider" Version="170.12.0" />
|
<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" 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.Data" Version="9.0.4" />
|
||||||
<PackageReference Update="Microsoft.Azure.Kusto.Language" Version="9.0.4" />
|
<PackageReference Update="Microsoft.Azure.Kusto.Language" Version="9.0.4" />
|
||||||
<PackageReference Update="Microsoft.SqlServer.Assessment" Version="[1.1.17]" />
|
<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
|
/// Type of system database
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SystemDatabase SystemDatabase { get; set; }
|
public SystemDatabase SystemDatabase { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Type of reference - ArtifactReference or PackageReference
|
||||||
|
/// </summary>
|
||||||
|
public ReferenceType ReferenceType { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -385,7 +385,8 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects
|
|||||||
new SystemDatabaseReference(
|
new SystemDatabaseReference(
|
||||||
requestParams.SystemDatabase,
|
requestParams.SystemDatabase,
|
||||||
requestParams.SuppressMissingDependencies,
|
requestParams.SuppressMissingDependencies,
|
||||||
requestParams.DatabaseLiteral)),
|
requestParams.DatabaseLiteral,
|
||||||
|
requestParams.ReferenceType)),
|
||||||
requestContext);
|
requestContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -527,21 +527,40 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects
|
|||||||
{
|
{
|
||||||
var (service, projectUri, _, _) = await SetUpDatabaseReferenceTest();
|
var (service, projectUri, _, _) = await SetUpDatabaseReferenceTest();
|
||||||
|
|
||||||
|
// Artifact reference
|
||||||
MockRequest<ResultStatus> requestMock = new();
|
MockRequest<ResultStatus> requestMock = new();
|
||||||
await service.HandleAddSystemDatabaseReferenceRequest(new AddSystemDatabaseReferenceParams()
|
await service.HandleAddSystemDatabaseReferenceRequest(new AddSystemDatabaseReferenceParams()
|
||||||
{
|
{
|
||||||
ProjectUri = projectUri,
|
ProjectUri = projectUri,
|
||||||
SystemDatabase = SystemDatabase.MSDB,
|
SystemDatabase = SystemDatabase.MSDB,
|
||||||
DatabaseLiteral = "EmEssDeeBee",
|
DatabaseLiteral = "EmEssDeeBee",
|
||||||
SuppressMissingDependencies = false
|
SuppressMissingDependencies = false,
|
||||||
|
ReferenceType = ReferenceType.ArtifactReference
|
||||||
}, requestMock.Object);
|
}, requestMock.Object);
|
||||||
|
|
||||||
requestMock.AssertSuccess(nameof(service.HandleAddSystemDatabaseReferenceRequest));
|
requestMock.AssertSuccess(nameof(service.HandleAddSystemDatabaseReferenceRequest));
|
||||||
Assert.AreEqual(1, service.Projects[projectUri].DatabaseReferences.Count, "Database references after adding system db reference");
|
Assert.AreEqual(1, service.Projects[projectUri].DatabaseReferences.Count, "Database references after adding system db reference to msdb");
|
||||||
SystemDatabaseReference systemDbRef = (SystemDatabaseReference)service.Projects[projectUri].DatabaseReferences.Get(SystemDatabase.MSDB.ToString());
|
SystemDatabaseReference msdbRef = (SystemDatabaseReference)service.Projects[projectUri].DatabaseReferences.Get(SystemDatabase.MSDB.ToString());
|
||||||
Assert.AreEqual(SystemDatabase.MSDB, systemDbRef.SystemDb, "Referenced system DB");
|
Assert.AreEqual(SystemDatabase.MSDB, msdbRef.SystemDb, "Referenced system DB");
|
||||||
Assert.AreEqual("EmEssDeeBee", systemDbRef.DatabaseVariableLiteralName);
|
Assert.AreEqual("EmEssDeeBee", msdbRef.DatabaseVariableLiteralName);
|
||||||
Assert.IsFalse(systemDbRef.SuppressMissingDependencies, nameof(systemDbRef.SuppressMissingDependencies));
|
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]
|
[Test]
|
||||||
|
|||||||
Reference in New Issue
Block a user