コード例 #1
0
        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("));
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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());
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }