public void FunctionCallWithOnlyOpeningParenthesis() { FunctionCallParser tokenizer = GetFunctionCallParser("func("); QueryToken result; Action parse = () => tokenizer.TryParseIdentifierAsFunction(null, out result); parse.ShouldThrow <ODataException>().WithMessage(ODataErrorStrings.UriQueryExpressionParser_ExpressionExpected(5, "func(")); }
public void ParseNonDottedIdentifier() { FunctionCallParser tokenizer = GetFunctionCallParser("func()"); QueryToken result; bool success = tokenizer.TryParseIdentifierAsFunction(null, out result); success.Should().BeTrue(); result.ShouldBeFunctionCallToken("func").And.Arguments.Should().BeEmpty(); }
public void ParseManyDottedIdentifier() { FunctionCallParser tokenizer = GetFunctionCallParser("one.two.three.four.five.six()"); QueryToken result; bool success = tokenizer.TryParseIdentifierAsFunction(null, out result); success.Should().BeTrue(); result.ShouldBeFunctionCallToken("one.two.three.four.five.six").And.Arguments.Should().BeEmpty(); }
public void ParseDottedIdentifier() { FunctionCallParser tokenizer = GetFunctionCallParser("geo.distance()"); QueryToken result; bool success = tokenizer.TryParseIdentifierAsFunction(null, out result); Assert.True(success); Assert.Empty(result.ShouldBeFunctionCallToken("geo.distance").Arguments); }
public void FunctionCallWithNamedArguments() { FunctionCallParser tokenizer = GetFunctionCallParser("func(stuff=1, morestuff=2)"); QueryToken result; bool success = tokenizer.TryParseIdentifierAsFunction(null, out result); Assert.True(success); Assert.Equal(2, result.ShouldBeFunctionCallToken("func").Arguments.Count()); }
public void FunctionWithOneArgument() { FunctionCallParser tokenizer = GetFunctionCallParser("func(1)"); QueryToken result; bool success = tokenizer.TryParseIdentifierAsFunction(null, out result); Assert.True(success); Assert.Single(result.ShouldBeFunctionCallToken("func").Arguments); }
public void ParsedFunctionWithAParent() { FunctionCallParser tokenizer = GetFunctionCallParser("func()"); InnerPathToken parent = new InnerPathToken("Customer", null, null); QueryToken result; bool success = tokenizer.TryParseIdentifierAsFunction(parent, out result); success.Should().BeTrue(); result.ShouldBeFunctionCallToken("func").And.Source.Should().BeSameAs(parent); }
public void FunctionCallWithNamedArguments() { FunctionCallParser tokenizer = GetFunctionCallParser("func(stuff=1, morestuff=2)"); QueryToken result; bool success = tokenizer.TryParseIdentifierAsFunction(null, out result); success.Should().BeTrue(); result.ShouldBeFunctionCallToken("func") .And.Arguments.Should().HaveCount(2); }
public void FunctionWithOneArgument() { FunctionCallParser tokenizer = GetFunctionCallParser("func(1)"); QueryToken result; bool success = tokenizer.TryParseIdentifierAsFunction(null, out result); success.Should().BeTrue(); result.ShouldBeFunctionCallToken("func") .Arguments.Should().HaveCount(1); }
public void ParsedFunctionWithAParentAndArgs() { FunctionCallParser tokenizer = GetFunctionCallParser("func(x='blah')"); InnerPathToken parent = new InnerPathToken("Customer", null, null); QueryToken result; bool success = tokenizer.TryParseIdentifierAsFunction(parent, out result); success.Should().BeTrue(); FunctionCallToken functionCallToken = result.ShouldBeFunctionCallToken("func").And; functionCallToken.Source.Should().BeSameAs(parent); functionCallToken.Arguments.Should().HaveCount(1); }
public void ParsedFunctionWithAParentAndArgs() { FunctionCallParser tokenizer = GetFunctionCallParser("func(x='blah')"); InnerPathToken parent = new InnerPathToken("Customer", null, null); QueryToken result; bool success = tokenizer.TryParseIdentifierAsFunction(parent, out result); Assert.True(success); FunctionCallToken functionCallToken = result.ShouldBeFunctionCallToken("func"); Assert.Same(parent, functionCallToken.Source); Assert.Single(functionCallToken.Arguments); }