public void TestInitialFixup() { var scopeFactory = new TestPowerFxScopeFactory((string documentUri) => new MockSqlEngine()); var testServer = new TestLanguageServer(_sendToClientData.Add, scopeFactory); var documentUri = "powerfx://app?context={\"A\":1,\"B\":[1,2,3]}"; testServer.OnDataReceived(JsonSerializer.Serialize(new { jsonrpc = "2.0", id = "123", method = "$/initialFixup", @params = new InitialFixupParams() { TextDocument = new TextDocumentItem() { Uri = documentUri, LanguageId = "powerfx", Version = 1, Text = "new_price * new_quantity" } } })); Assert.Single(_sendToClientData); var response = JsonSerializer.Deserialize <JsonRpcInitialFixupResponse>(_sendToClientData[0], _jsonSerializerOptions); Assert.Equal("123", response.Id); Assert.Equal(documentUri, response.Result.Uri); Assert.Equal("Price * Quantity", response.Result.Text); // no change _sendToClientData.Clear(); testServer.OnDataReceived(JsonSerializer.Serialize(new { jsonrpc = "2.0", id = "123", method = "$/initialFixup", @params = new InitialFixupParams() { TextDocument = new TextDocumentItem() { Uri = documentUri, LanguageId = "powerfx", Version = 1, Text = "Price * Quantity" } } })); Assert.Single(_sendToClientData); response = JsonSerializer.Deserialize <JsonRpcInitialFixupResponse>(_sendToClientData[0], _jsonSerializerOptions); Assert.Equal("123", response.Id); Assert.Equal(documentUri, response.Result.Uri); Assert.Equal("Price * Quantity", response.Result.Text); }
public LanguageServerTests() { _sendToClientData = new List <string>(); _scopeFactory = new TestPowerFxScopeFactory((string documentUri) => RecalcEngineScope.FromUri(new RecalcEngine(), documentUri)); _testServer = new TestLanguageServer(_sendToClientData.Add, _scopeFactory); }