public void GetTokensFromBadFormulaTest() { var scope = RecalcEngineScope.FromJson(new RecalcEngine(), "{\"A\":1,\"B\":[1,2,3]}"); var checkResult = scope.Check("A + CountRows(B) + C + NoFunction(123)"); var result = GetTokensUtils.GetTokens(checkResult._binding, GetTokensFlags.None); Assert.Equal(0, result.Count); result = GetTokensUtils.GetTokens(checkResult._binding, GetTokensFlags.UsedInExpression); Assert.Equal(3, result.Count); Assert.Equal(TokenResultType.Variable, result["A"]); Assert.Equal(TokenResultType.Variable, result["B"]); Assert.Equal(TokenResultType.Function, result["CountRows"]); Assert.False(result.ContainsKey("C")); Assert.False(result.ContainsKey("NoFunction")); result = GetTokensUtils.GetTokens(checkResult._binding, GetTokensFlags.AllFunctions); Assert.False(result.ContainsKey("A")); Assert.False(result.ContainsKey("B")); Assert.Equal(TokenResultType.Function, result["Abs"]); Assert.Equal(TokenResultType.Function, result["CountRows"]); Assert.Equal(TokenResultType.Function, result["Year"]); Assert.False(result.ContainsKey("C")); Assert.False(result.ContainsKey("NoFunction")); result = GetTokensUtils.GetTokens(checkResult._binding, GetTokensFlags.UsedInExpression | GetTokensFlags.AllFunctions); Assert.Equal(TokenResultType.Variable, result["A"]); Assert.Equal(TokenResultType.Variable, result["B"]); Assert.Equal(TokenResultType.Function, result["Abs"]); Assert.Equal(TokenResultType.Function, result["Year"]); Assert.Equal(TokenResultType.Function, result["CountRows"]); Assert.False(result.ContainsKey("C")); Assert.False(result.ContainsKey("NoFunction")); }
public LanguageServerTests() { _sendToClientData = new List <string>(); _scopeFactory = new TestPowerFxScopeFactory((string documentUri) => RecalcEngineScope.FromUri(new RecalcEngine(), documentUri)); _testServer = new TestLanguageServer(_sendToClientData.Add, _scopeFactory); }