public void FunctionParameterParserShouldFailIfAnExtraClosingParenthesisIsFoundInPath() { ICollection <FunctionParameterToken> splitParameters; ODataUriParserConfiguration configuration = new ODataUriParserConfiguration(HardCodedTestModel.TestModel) { ParameterAliasValueAccessor = null }; Action parse = () => FunctionParameterParser.TrySplitOperationParameters(/*"fakeFunc", */ "a=1)", configuration, out splitParameters); parse.ShouldThrow <ODataException>().WithMessage(ODataErrorStrings.ExpressionLexer_SyntaxError(4, "a=1)")); }
private static bool TryParseOperationParameters(string functionName, string parenthesisExpression, IEdmOperation operation, out ICollection <OperationSegmentParameter> parsedSegementParameters, bool enableUriTemplateParsing = false) { ICollection <FunctionParameterToken> splitParameters; parsedSegementParameters = null; ODataUriParserConfiguration configuration = new ODataUriParserConfiguration(HardCodedTestModel.TestModel) { EnableUriTemplateParsing = enableUriTemplateParsing }; if (FunctionParameterParser.TrySplitOperationParameters(parenthesisExpression, configuration, out splitParameters)) { parsedSegementParameters = FunctionCallBinder.BindSegmentParameters(configuration, operation, splitParameters); return(true); } return(false); }
private static bool TryParseOperationParameters(string functionName, string parenthesisExpression, ParameterAliasValueAccessor paramAliasAccessor, IEdmOperation operation, out ICollection <OperationSegmentParameter> parsedSegementParameters) { ICollection <FunctionParameterToken> splitParameters; parsedSegementParameters = null; ODataUriParserConfiguration configuration = new ODataUriParserConfiguration(HardCodedTestModel.TestModel) { ParameterAliasValueAccessor = paramAliasAccessor, EnableCaseInsensitiveUriFunctionIdentifier = false }; if (FunctionParameterParser.TrySplitOperationParameters(parenthesisExpression, configuration, out splitParameters)) { parsedSegementParameters = FunctionCallBinder.BindSegmentParameters(configuration, operation, splitParameters); return(true); } return(false); }