mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-14 01:25:40 -05:00
Consolidate context request endpoints into a single request endpoint (#2205)
* Create new endpoint consolidating previous 2 * Clarify comment * Removes two separate endpoints to get and generate * Rename classes for get context request * Update src/Microsoft.SqlTools.ServiceLayer/Metadata/MetadataService.cs Co-authored-by: Charles Gagnon <chgagnon@microsoft.com> * Update src/Microsoft.SqlTools.ServiceLayer/Metadata/MetadataService.cs Co-authored-by: Charles Gagnon <chgagnon@microsoft.com> * Code review changes * Throw exception and localize ex messages --------- Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
This commit is contained in:
@@ -133,42 +133,6 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.Metadata
|
||||
requestContext.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task VerifyGenerateServerContextualizationNotification()
|
||||
{
|
||||
this.testTableName += new Random().Next(1000000, 9999999).ToString();
|
||||
this.testTableName2 += new Random().Next(0, 999999).ToString();
|
||||
|
||||
var connectionResult = LiveConnectionHelper.InitLiveConnectionInfo(null);
|
||||
var sqlConn = ConnectionService.OpenSqlConnection(connectionResult.ConnectionInfo);
|
||||
|
||||
CreateTestTable(sqlConn, this.testTableSchema, this.testTableName);
|
||||
CreateTestTable(sqlConn, this.testTableSchema, this.testTableName2);
|
||||
|
||||
var generateServerContextualizationParams = new GenerateServerContextualizationParams
|
||||
{
|
||||
OwnerUri = connectionResult.ConnectionInfo.OwnerUri
|
||||
};
|
||||
|
||||
var actualGenerateServerContextResponse = new GenerateServerContextualizationResult();
|
||||
var mockGenerateRequestContext = new Mock<RequestContext<GenerateServerContextualizationResult>>();
|
||||
mockGenerateRequestContext.Setup(x => x.SendResult(It.IsAny<GenerateServerContextualizationResult>()))
|
||||
.Callback<GenerateServerContextualizationResult>(result => actualGenerateServerContextResponse = result)
|
||||
.Returns(Task.CompletedTask);
|
||||
await MetadataService.GenerateServerContextualization(generateServerContextualizationParams, mockGenerateRequestContext.Object);
|
||||
|
||||
DeleteTestTable(sqlConn, this.testTableSchema, this.testTableName);
|
||||
DeleteTestTable(sqlConn, this.testTableSchema, this.testTableName2);
|
||||
|
||||
var firstCreateTableScript = $"CREATE TABLE [{this.testTableSchema}].[{this.testTableName}]([id] [int] NULL)";
|
||||
var secondCreateTableScript = $"CREATE TABLE [{this.testTableSchema}].[{this.testTableName2}]([id] [int] NULL)";
|
||||
|
||||
Assert.IsTrue(actualGenerateServerContextResponse.Context.Contains(firstCreateTableScript));
|
||||
Assert.IsTrue(actualGenerateServerContextResponse.Context.Contains(secondCreateTableScript));
|
||||
|
||||
DeleteServerContextualizationTempFile(sqlConn.DataSource);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task VerifyGetServerContextualizationRequest()
|
||||
{
|
||||
@@ -194,28 +158,19 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.Metadata
|
||||
{
|
||||
OwnerUri = connectionResult.ConnectionInfo.OwnerUri
|
||||
};
|
||||
|
||||
// First call generates context, stores it in temp file and returns the generated context
|
||||
await MetadataService.GetServerContextualization(getServerContextualizationParams, mockGetServerContextualizationRequestContext.Object);
|
||||
|
||||
Assert.IsNull(actualGetServerContextualizationResponse.Context);
|
||||
Assert.IsNull(actualGetServerContextualizationResponse.Context);
|
||||
Assert.IsTrue(actualGetServerContextualizationResponse.Context.Contains(firstCreateTableScript));
|
||||
Assert.IsTrue(actualGetServerContextualizationResponse.Context.Contains(secondCreateTableScript));
|
||||
|
||||
var generateServerContextualizationParams = new GenerateServerContextualizationParams
|
||||
{
|
||||
OwnerUri = connectionResult.ConnectionInfo.OwnerUri
|
||||
};
|
||||
|
||||
var actualGenerateServerContextResponse = new GenerateServerContextualizationResult();
|
||||
var mockGenerateRequestContext = new Mock<RequestContext<GenerateServerContextualizationResult>>();
|
||||
mockGenerateRequestContext.Setup(x => x.SendResult(It.IsAny<GenerateServerContextualizationResult>()))
|
||||
.Callback<GenerateServerContextualizationResult>(actual => actualGenerateServerContextResponse = actual)
|
||||
.Returns(Task.CompletedTask);
|
||||
await MetadataService.GenerateServerContextualization(generateServerContextualizationParams, mockGenerateRequestContext.Object);
|
||||
// Second call gets the context from the temp file and returns that read file context.
|
||||
await MetadataService.GetServerContextualization(getServerContextualizationParams, mockGetServerContextualizationRequestContext.Object);
|
||||
|
||||
DeleteTestTable(sqlConn, this.testTableSchema, this.testTableName);
|
||||
DeleteTestTable(sqlConn, this.testTableSchema, this.testTableName2);
|
||||
|
||||
await MetadataService.GetServerContextualization(getServerContextualizationParams, mockGetServerContextualizationRequestContext.Object);
|
||||
|
||||
Assert.IsTrue(actualGetServerContextualizationResponse.Context.Contains(firstCreateTableScript));
|
||||
Assert.IsTrue(actualGetServerContextualizationResponse.Context.Contains(secondCreateTableScript));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user