UNPKG

trader-server

Version:

OData server for testing strategies, simulating and real trading.

1,873 lines (1,872 loc) 63.1 kB
[ { "-Name": "Just to test the dummy start rule", "-Rule": "dummyStartRule", "Input": "http://services.odata.org/" }, { "-Name": "URI with IPv4 address, path and trailing slash", "-Rule": "odataUri", "Input": "http://127.0.0.1:8080/MyService/" }, { "-Name": "URI with IPv6 address, path and trailing slash", "-Rule": "odataUri", "Input": "https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:8080/MyService/" }, { "-Name": "URI with IPvFuture address, path and trailing slash", "-Rule": "odataUri", "Input": "https://[v7.0]/MyService/" }, { "-Name": "URI without schema separator", "-Rule": "odataUri", "-FailAt": "4", "Input": "http//My.Org/" }, { "-Name": "Resource Path - Entity Set", "-Rule": "resourcePath", "Input": "Categories" }, { "-Name": "Resource Path - Entity", "-Rule": "resourcePath", "Input": "Categories(11)" }, { "-Name": "Resource Path - Entity", "-Rule": "resourcePath", "Input": "Categories(ID=1)" }, { "-Name": "Resource Path - Entity", "-Rule": "resourcePath", "Input": "Categories(ID=1,Size=5)" }, { "-Name": "Identifier", "-Rule": "odataIdentifier", "Input": "TheQuickBrownFoxSays42" }, { "-Name": "Identifier with leading underscores", "-Rule": "odataIdentifier", "Input": "__ID" }, { "-Name": "Identifier: no starting digit", "-Rule": "odataIdentifier", "-FailAt": "0", "Input": "0time" }, { "-Name": "Identifier: no dots within", "-Rule": "odataIdentifier", "-FailAt": "2", "Input": "No.Dot" }, { "-Name": "Entity Set", "-Rule": "resourcePath", "Input": "Products" }, { "-Name": "2 URL Components - service root URL", "-Rule": "odataUri", "Input": "http://services.odata.org/OData/OData.svc/" }, { "-Name": "2 URL Components - service root directly at server root", "-Rule": "odataUri", "Input": "http://My.Org:80/" }, { "-Name": "2 URL Components - resource path", "-Rule": "resourcePath", "Input": "Categories(1)/Products" }, { "-Name": "2 URL Components - resource path", "-Rule": "resourcePath", "Input": "Categories(1)/Products" }, { "-Name": "2 URL Components - key with alias", "-Rule": "resourcePath", "Input": "Categories(KeyAlias=1)" }, { "-Name": "2 URL Components - query options", "-Rule": "queryOptions", "Input": "$top=2&$orderby=Name" }, { "-Name": "2 URL Components - resource path and query options", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Products?$top=2&$orderby=Name" }, { "-Name": "2 URL Components - single quotes", "-Rule": "odataRelativeUri", "Input": "Customers('O''Neil')" }, { "-Name": "2 URL Components - single quotes", "-Rule": "odataRelativeUri", "Input": "Customers(%27O%27%27Neil%27)" }, { "-Name": "2 URL Components - unquoted single quotes", "-Rule": "odataRelativeUri", "-FailAt": "15", "Input": "Customers('O%27Neil')" }, { "-Name": "2 URL Components - parentheses", "-Rule": "odataRelativeUri", "Input": "Customers%28%27O%27%27Neil%27%29" }, { "-Name": "2 URL Components - encoded forward slash", "-Rule": "odataUri", "Input": "http://host/service/Categories('Smartphone%2FTablet')" }, { "-Name": "2 URL Components - unencoded forward slash", "-Rule": "odataRelativeUri", "-FailAt": "22", "Input": "Categories('Smartphone/Tablet')" }, { "-Name": "4.1 - Metadata URL", "-Rule": "odataUri", "Input": "http://services.odata.org/OData/OData.svc/$metadata" }, { "-Name": "4.1 - Metadata URL - allowed but reserved for future use", "-Rule": "odataUri", "Input": "http://services.odata.org/OData/OData.svc/$metadata?$format=json" }, { "-Name": "4.1 - Metadata URL - allowed", "-Rule": "odataUri", "Input": "http://services.odata.org/OData/OData.svc/$metadata?$format=text/html" }, { "-Name": "4.2 - Batch URL", "-Rule": "odataUri", "Input": "http://services.odata.org/OData/OData.svc/$batch" }, { "-Name": "4.3 Addressing entities - entity set", "-Rule": "entitySetName", "Input": "Products" }, { "-Name": "4.3 Addressing entities - entity set", "-Rule": "odataRelativeUri", "Input": "Products" }, { "-Name": "4.3 Addressing entities - no trailing dot", "-Rule": "odataRelativeUri", "-FailAt": "8", "Input": "Products.('foo')" }, { "-Name": "4.3 Addressing entities - no leading dot", "-Rule": "odataRelativeUri", "-FailAt": "0", "Input": ".Products('foo')" }, { "-Name": "4.3 Addressing entities - function call", "-Rule": "odataRelativeUri", "Input": "ProductsByCategoryId(categoryId=2)" }, { "-Name": "4.3 Addressing entities - function call with alias", "-Rule": "odataRelativeUri", "Input": "ProductsByCategoryId(categoryId=@cat)?@cat=2" }, { "-Name": "4.3 Addressing entities - function call with query parameter", "-Rule": "odataRelativeUri", "Input": "ProductsByCategoryId(categoryId=2)" }, { "-Name": "4.3 Addressing entities - function parameter", "-Rule": "functionParameter", "Input": "color='red'" }, { "-Name": "4.3 Addressing entities - top-level function call", "-Rule": "odataRelativeUri", "Input": "ProductsByColor(color='red')" }, { "-Name": "4.3 Addressing entities - bound function call", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Model.ProductsByColor(color='red')" }, { "-Name": "4.3 Addressing entities - single entity (short)", "-Rule": "resourcePath", "Input": "Categories(1)" }, { "-Name": "4.3 Addressing entities - single entity (short)", "-Rule": "odataRelativeUri", "Input": "Customers(1)" }, { "-Name": "4.3 Addressing entities - single entity (long)", "-Rule": "resourcePath", "Input": "Categories(ID=1)" }, { "-Name": "4.3 Addressing entities - single entity (string)", "-Rule": "resourcePath", "Input": "Categories('Tablet')" }, { "-Name": "4.3 Addressing entities - single entity (string)", "-Rule": "resourcePath", "Input": "Categories('7''''%20Tablet')" }, { "-Name": "4.3 Addressing entities - single entity (string)", "-Rule": "resourcePath", "Input": "Categories%28%27Tablet%27%29" }, { "-Name": "4.3 Addressing entities - single entity (string)", "-Rule": "resourcePath", "Input": "Categories('Tablet%2FSlate')" }, { "-Name": "4.3 Addressing entities - single entity (wrong)", "-Rule": "resourcePath", "-FailAt": "18", "Input": "Categories('Tablet/Slate')" }, { "-Name": "4.3 Addressing entities - single entity (string)", "-Rule": "resourcePath", "Input": "Categories('Tablet%20%28small%29')" }, { "-Name": "4.3 Addressing entities - single entity (string)", "-Rule": "resourcePath", "Input": "Categories('Tablet%20(small)')" }, { "-Name": "4.3 Addressing entities - single entity (string)", "-Rule": "resourcePath", "Input": "Categories('Tablet%20)small(')" }, { "-Name": "4.3 Addressing entities - single entity (wrong)", "-Rule": "resourcePath", "-FailAt": "19", "Input": "Categories(ID=wrong)" }, { "-Name": "4.3 Addressing entities - single entity (multi-part key)", "-Rule": "resourcePath", "Input": "OrderItems(OrderID=1,ItemID='a')" }, { "-Name": "4.3 Addressing entities - single entity (wrong multi-part key)", "-Rule": "resourcePath", "-FailAt": "20", "Input": "OrderItems(OrderID=1;ItemID='a')" }, { "-Name": "4.3 Addressing entities - bound operation on entity set", "-Rule": "resourcePath", "Input": "Products/Model.MostExpensive()" }, { "-Name": "4.3 Addressing entities - follow navigation property", "-Rule": "resourcePath", "Input": "Products(1)/Supplier" }, { "-Name": "4.3 Addressing entities - follow navigation property and call function", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Products/Model.AllOrders()" }, { "-Name": "4.3 Addressing entities - follow navigation property and call function", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Products/Model.MostExpensive()" }, { "-Name": "4.3 Addressing entities - singleton entities", "-Rule": "resourcePath", "Input": "SingletonEntity" }, { "-Name": "4.3 Addressing entities - single navigation property in complex type", "-Rule": "resourcePath", "Input": "Customers(1)/Address/Country" }, { "-Name": "4.3 Addressing entities - collection navigation property in complex type", "-Rule": "resourcePath", "Input": "Customers(1)/Address/Products" }, { "-Name": "4.3.1 Canonical URL", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Products(1)" }, { "-Name": "4.3.4 $entity with OData URL", "-Rule": "odataRelativeUri", "Input": "$entity?$id=http://host/path" }, { "-Name": "4.3.4 $entity with URN", "-Rule": "odataRelativeUri", "Input": "$entity?$id=urn:some:id" }, { "-Name": "4.3.4 $entity with OData URL, $select and $expand fails without type-cast", "-Rule": "odataRelativeUri", "-FailAt": "48", "Input": "$entity?$id=http://myservice/Customers('ALFKI')&$select=CompanyName,ContactName&$expand=Orders" }, { "-Name": "4.3.4 $entity with OData URL, $select and $expand", "-Rule": "odataRelativeUri", "Input": "$entity/Model.Customer?$id=http://myservice/Customers('ALFKI')&$select=CompanyName,ContactName&$expand=Orders" }, { "-Name": "4.3.4 $entity without $id fails", "-Rule": "odataRelativeUri", "-FailAt": "20", "Input": "$entity?$format=json" }, { "-Name": "4.4 Addressing Links between Entities", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Products/$ref" }, { "-Name": "4.4 Addressing Links between Entities", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Products/$ref?$id=Products(0)" }, { "-Name": "4.4 Addressing Links between Entities", "-Rule": "odataRelativeUri", "Input": "Products(1)/Category/$ref" }, { "-Name": "4.4 Addressing Links between Entities - count", "-Rule": "odataRelativeUri", "-FailAt": "27", "Input": "Categories(1)/Products/$ref/$count" }, { "-Name": "4.4 Addressing Links between Entities", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Products(2)/$ref" }, { "-Name": "4.4 Addressing Links between Entities", "-Rule": "odataRelativeUri", "-FailAt": "30", "Input": "Categories(1)/Products(2)/$ref/$count" }, { "-Name": "4.5.1 Call unbound action via action import", "-Rule": "odataRelativeUri", "Input": "Activation" }, { "-Name": "4.5.1 Call bound action", "-Rule": "odataRelativeUri", "Input": "LeaveRequests(4)/Model.Rejection" }, { "-Name": "4.5.1 Call action at service root", "-Rule": "odataRelativeUri", "-FailAt": "5", "Input": "Model.Rejection" }, { "-Name": "4.5.2 Call function import", "-Rule": "odataRelativeUri", "Input": "TheBestProduct()" }, { "-Name": "4.5.2 Call function import - no parentheses", "-Rule": "odataRelativeUri", "-FailAt": "14", "Input": "TheBestProduct" }, { "-Name": "4.5.2 Call function import - inline parameter", "-Rule": "odataRelativeUri", "Input": "TheBestProduct(Size=3)" }, { "-Name": "4.5.2 Call function import - only at service root", "-Rule": "odataRelativeUri", "-FailAt": "25", "Input": "Categories/TheBestProduct()" }, { "-Name": "4.5.2 Call complex function import", "-Rule": "odataRelativeUri", "Input": "TheMostPopularAddress()" }, { "-Name": "4.5.2 Call complex collection function import", "-Rule": "odataRelativeUri", "Input": "TheMostPopularAddresses()" }, { "-Name": "4.5.2 Call primitive function import", "-Rule": "odataRelativeUri", "Input": "TheMostPopularName()" }, { "-Name": "4.5.2 Call primitive function import", "-Rule": "odataRelativeUri", "Input": "TheMostPopularName()/$value" }, { "-Name": "4.5.2 Call primitive collection function import", "-Rule": "odataRelativeUri", "Input": "TheMostPopularNames()" }, { "-Name": "4.5.2 Call bound complex function", "-Rule": "odataRelativeUri", "Input": "Customers/Model.MostPopularAddress()" }, { "-Name": "4.5.2 Call bound complex collection function", "-Rule": "odataRelativeUri", "Input": "Customers/Model.MostPopularAddresses()" }, { "-Name": "4.5.2 Call bound complex collection function", "-Rule": "odataRelativeUri", "Input": "Customers/Model.MostPopularAddresses()/$count" }, { "-Name": "4.5.2 Call bound complex collection function - multiple", "-Rule": "odataRelativeUri", "Input": "Customers/Model.MostPopularAddresses()/Model.MostPopularNames()" }, { "-Name": "4.5.2 Call bound primitive function", "-Rule": "odataRelativeUri", "Input": "Customers/Model.MostPopularName()" }, { "-Name": "4.5.2 Call bound primitive function", "-Rule": "odataRelativeUri", "Input": "Customers/Model.MostPopularName()/$value" }, { "-Name": "4.5.2 Call bound primitive collection function", "-Rule": "odataRelativeUri", "Input": "Customers/Model.MostPopularNames()" }, { "-Name": "4.5.2 Call bound primitive collection function", "-Rule": "odataRelativeUri", "Input": "Customers/Model.MostPopularNames()/$count" }, { "-Name": "4.6 Addressing a Property - primitive", "-Rule": "odataRelativeUri", "Input": "Categories(1)/ID" }, { "-Name": "4.6 Addressing a Property - complex", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Address" }, { "-Name": "4.6 Addressing a Property - complex path", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Address/Street" }, { "-Name": "4.6 Addressing a Property - complex path with type cast", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Address/Model.AddressWithLocation/Location" }, { "-Name": "4.6 Addressing a Property - stream", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Thumbnail" }, { "-Name": "4.6 Addressing a Property - collection of primitive", "-Rule": "odataRelativeUri", "Input": "Suppliers(1)/EmailAddresses" }, { "-Name": "4.6 Addressing a Property - collection of complex", "-Rule": "odataRelativeUri", "Input": "Suppliers(1)/Addresses" }, { "-Name": "4.7 Addressing a Property Value", "-Rule": "odataRelativeUri", "Input": "Categories(1)/ID/$value" }, { "-Name": "4.7 Addressing a Property Value - with $format", "-Rule": "odataRelativeUri", "Input": "Categories(1)/ID/$value?$format=json" }, { "-Name": "4.7 Addressing a Property Value - illegal suffix", "-Rule": "odataRelativeUri", "-FailAt": "23", "Input": "Categories(1)/ID/$value/foo" }, { "-Name": "4.7 Addressing a Property Value - complex", "-Rule": "odataRelativeUri", "-FailAt": "22", "Input": "Categories(1)/Address/$value" }, { "-Name": "4.7 Addressing a Property Value - property of complex", "-Rule": "odataRelativeUri", "Input": "Categories(1)/Address/Street/$value" }, { "-Name": "4.7 Named Stream Property - $value does not make sense here", "-Rule": "odataRelativeUri", "-FailAt": "24", "Input": "Categories(1)/Thumbnail/$value" }, { "-Name": "4.8 Addressing entities - entity set with $count", "-Rule": "odataRelativeUri", "Input": "Products/$count" }, { "-Name": "4.8 Addressing entities - $count not last segment", "-Rule": "odataRelativeUri", "-FailAt": "15", "Input": "Products/$count/foo" }, { "-Name": "4.8 Addressing entities - entity set navigation with $count", "-Rule": "odataRelativeUri", "Input": "Products(1)/Items/$count" }, { "-Name": "4.8 Addressing entities - collection property with $count", "-Rule": "odataRelativeUri", "Input": "Products(1)/Addresses/$count" }, { "-Name": "4.8 Addressing entities - collection property with $count", "-Rule": "odataRelativeUri", "Input": "Products(1)/Sizes/$count" }, { "-Name": "4.8 Addressing the Count - in $filter with navigation", "-Rule": "filter", "Input": "$filter=Products/$count gt 0" }, { "-Name": "4.8 Addressing the Count - in $filter with complex collection", "-Rule": "filter", "Input": "$filter=Addresses/$count gt 0" }, { "-Name": "4.8 Addressing the Count - in $filter with primitive collection", "-Rule": "filter", "Input": "$filter=Sizes/$count gt 0" }, { "-Name": "4.8 Addressing the Count - collection navigation property with $count in $orderby", "-Rule": "orderby", "Input": "$orderby=Products/$count" }, { "-Name": "4.8 Addressing the Count - collection property with $count in $orderby", "-Rule": "orderby", "Input": "$orderby=Addresses/$count" }, { "-Name": "4.8 Addressing the Count - collection property with $count in $orderby", "-Rule": "orderby", "Input": "$orderby=Sizes/$count" }, { "-Name": "4.9 Inheritance - set of subtypes", "-Rule": "odataRelativeUri", "Input": "Products/Model.BestSellingProduct" }, { "-Name": "4.9 Inheritance - set of subtypes, then key access", "-Rule": "odataRelativeUri", "Input": "Products/Model.BestSellingProduct(1)" }, { "-Name": "4.9 Inheritance - key access, then cast to subtype", "-Rule": "odataRelativeUri", "Input": "Products(1)/Model.BestSellingProduct" }, { "-Name": "4.9 Inheritance - key access, then cast to subtype - only once", "-Rule": "odataRelativeUri", "-FailAt": "61", "Input": "Products(1)/Model.BestSellingProduct/Model.BestSellingProduct" }, { "-Name": "4.9 Inheritance - $expand", "-Rule": "odataRelativeUri", "Input": "Categories?$expand=Products/Model.BestSellingProduct" }, { "-Name": "4.9 Inheritance - $expand", "-Rule": "odataRelativeUri", "Input": "Products?$expand=Model.BestSellingProduct/Sales" }, { "-Name": "4.9 Inheritance - $expand", "-Rule": "odataRelativeUri", "Input": "Categories?$expand=Products/Model.BestSellingProduct($select=Name)" }, { "-Name": "4.9 Inheritance - $expand", "-Rule": "odataRelativeUri", "Input": "Categories?$expand=Products($filter=startswith(Name,'P'))" }, { "-Name": "4.10 Addressing a Media Resource", "-Rule": "odataRelativeUri", "Input": "Categories(1)/$value" }, { "-Name": "5 $ is reserved", "-Rule": "filter", "Input": "$filter=true" }, { "-Name": "5.1.1 Filter", "-Rule": "filter", "Input": "$filter=true" }, { "-Name": "5.1.1 Filter: no spaces", "-Rule": "filter", "-FailAt": "7", "Input": "$filter =true" }, { "-Name": "5.1.1 Filter: no spaces", "-Rule": "filter", "-FailAt": "9", "Input": "$filter= true" }, { "-Name": "5.1.1 Filter", "-Rule": "filter", "Input": "$filter=Completed" }, { "-Name": "5.1.1 Filter - member expressions", "-Rule": "firstMemberExpr", "Input": "Product" }, { "-Name": "5.1.1 Filter - member expressions - single navigation", "-Rule": "firstMemberExpr", "Input": "Product/Supplier" }, { "-Name": "5.1.1 Filter - member expressions - single-complex", "-Rule": "firstMemberExpr", "Input": "Product/Supplier/Address" }, { "-Name": "5.1.1 Filter - member expressions - single-complex-primitive", "-Rule": "firstMemberExpr", "Input": "Product/Supplier/Address/Street" }, { "-Name": "5.1.1 Filter - member expressions - single-complex-single", "-Rule": "firstMemberExpr", "Input": "Product/Supplier/Address/Country" }, { "-Name": "5.1.1 Filter - member expressions - single-complex-collection", "-Rule": "firstMemberExpr", "Input": "Product/Supplier/Address/Products" }, { "-Name": "5.1.1 Filter - member expressions - stream", "-Rule": "firstMemberExpr", "Input": "Product/Thumbnail" }, { "-Name": "5.1.1 Filter - member expressions - stream", "-Rule": "firstMemberExpr", "Input": "Address/Thumbnail" }, { "-Name": "5.1.1 Filter - member expressions - single-colComplex", "-Rule": "firstMemberExpr", "Input": "Product/Supplier/Addresses" }, { "-Name": "5.1.1 Filter - member expressions - single-primitive", "-Rule": "firstMemberExpr", "Input": "Product/Supplier/CompanyName" }, { "-Name": "5.1.1 Filter - member expressions - single-colPrimitive", "-Rule": "firstMemberExpr", "Input": "Product/Supplier/EmailAddresses" }, { "-Name": "5.1.1 Filter - member expressions - collection navigation", "-Rule": "firstMemberExpr", "Input": "Supplier/Products" }, { "-Name": "5.1.1 Filter - member expressions - collection navigation", "-Rule": "firstMemberExpr", "Input": "Products" }, { "-Name": "5.1.1 Filter - member expressions - collection navigation - count", "-Rule": "firstMemberExpr", "Input": "Products/$count" }, { "-Name": "5.1.1.1.1 Equals", "-Rule": "boolCommonExpr", "Input": "true eq false" }, { "-Name": "5.1.1.1.1 Equals - Property", "-Rule": "firstMemberExpr", "Input": "Size" }, { "-Name": "5.1.1.1.1 Equals", "-Rule": "boolCommonExpr", "Input": "Size eq true" }, { "-Name": "5.1.1.1.1 Equals - Literal", "-Rule": "primitiveLiteral", "Input": "4.0" }, { "-Name": "5.1.1.1.1 Equals - Literal", "-Rule": "primitiveLiteral", "Input": "'Huge'" }, { "-Name": "5.1.1.1.1 Equals", "-Rule": "boolCommonExpr", "Input": "Size eq 4.0" }, { "-Name": "5.1.1.1.1 Equals", "-Rule": "boolCommonExpr", "Input": "Street eq 'Hugo'" }, { "-Name": "5.1.1.1.1 Equals - property path argument", "-Rule": "firstMemberExpr", "Input": "Address/Street" }, { "-Name": "5.1.1.1.1 Equals - property path argument", "-Rule": "firstMemberExpr", "Input": "Address/Model.AddressWithLocation/Location" }, { "-Name": "5.1.1.1.1 Equals", "-Rule": "boolCommonExpr", "Input": "Address/Street eq 'Hugo'" }, { "-Name": "5.1.1.1.2 Not Equals", "-Rule": "boolCommonExpr", "Input": "Name ne 'Milk'" }, { "-Name": "5.1.1.1.2 Not Equals", "-Rule": "boolCommonExpr", "Input": "true ne false" }, { "-Name": "5.1.1.1.3 Greater Than", "-Rule": "boolCommonExpr", "Input": "Name gt 'Milk'" }, { "-Name": "5.1.1.1.4 Greater Than or Equal", "-Rule": "boolCommonExpr", "Input": "Name ge 'Milk'" }, { "-Name": "5.1.1.1.5 Less Than", "-Rule": "boolCommonExpr", "Input": "Name lt 'Milk'" }, { "-Name": "5.1.1.1.6 Less Than or Equal", "-Rule": "boolCommonExpr", "Input": "Name le 'Milk'" }, { "-Name": "5.1.1.1.7 Logical And", "-Rule": "boolCommonExpr", "Input": "true and false" }, { "-Name": "5.1.1.1.8 Logical Or", "-Rule": "boolCommonExpr", "Input": "true or false" }, { "-Name": "5.1.1.1.9 Logical Negation", "-Rule": "notExpr", "Input": "not false" }, { "-Name": "5.1.1.1.10 Logical Operator Examples", "-Rule": "boolCommonExpr", "Input": "Name eq 'Milk'" }, { "-Name": "5.1.1.1.10 Logical Operator Examples", "-Rule": "boolCommonExpr", "Input": "Supplier/Name eq 'Milk'" }, { "-Name": "5.1.1.1.10 Logical Operator Examples", "-Rule": "boolCommonExpr", "Input": "Name eq 'Milk' and Price lt 2.55" }, { "-Name": "5.1.1.1.10 Logical Operator Examples", "-Rule": "boolCommonExpr", "Input": "Name eq 'Milk' or Price lt 2.55" }, { "-Name": "5.1.1.1.10 Logical Operator Examples", "-Rule": "boolCommonExpr", "Input": "not endswith(Name,'ilk')" }, { "-Name": "5.1.1.2.1 Addition", "-Rule": "commonExpr", "Input": "Price add 2.45" }, { "-Name": "5.1.1.2.1 Addition", "-Rule": "commonExpr", "Input": "(Price add 2.45) mod 2" }, { "-Name": "5.1.1.2.2 Subtraction", "-Rule": "commonExpr", "Input": "Price sub 0.55" }, { "-Name": "5.1.1.2.3 Multiplication", "-Rule": "commonExpr", "Input": "Price mul 2" }, { "-Name": "5.1.1.2.4 Division", "-Rule": "commonExpr", "Input": "Price div 2" }, { "-Name": "5.1.1.2.5 Modulo", "-Rule": "commonExpr", "Input": "Price mod 5" }, { "-Name": "5.1.1.2.5 Negate", "-Rule": "commonExpr", "Input": "-Price" }, { "-Name": "5.1.1.2.6 Arithmetic Operator Examples", "-Rule": "boolCommonExpr", "Input": "Price add 2.45 eq 5.00" }, { "-Name": "5.1.1.2.6 Arithmetic Operator Examples", "-Rule": "boolCommonExpr", "Input": "Price sub 0.55 eq 2.00" }, { "-Name": "5.1.1.2.6 Arithmetic Operator Examples", "-Rule": "boolCommonExpr", "Input": "Price mul 2.0 eq 5.10" }, { "-Name": "5.1.1.2.6 Arithmetic Operator Examples", "-Rule": "boolCommonExpr", "Input": "Price div 2.55 eq 1" }, { "-Name": "5.1.1.2.6 Arithmetic Operator Examples", "-Rule": "boolCommonExpr", "Input": "Rating mod 5 eq 0" }, { "-Name": "5.1.1.3 Parenthesis", "-Rule": "commonExpr", "Input": "(true)" }, { "-Name": "5.1.1.3 Parenthesis", "-Rule": "boolCommonExpr", "Input": "( true )" }, { "-Name": "5.1.1.3 Parenthesis", "-Rule": "boolCommonExpr", "Input": "(Name eq 'Milk')" }, { "-Name": "5.1.1.3 Parenthesis", "-Rule": "boolCommonExpr", "Input": "(false)" }, { "-Name": "5.1.1.3 Parenthesis", "-Rule": "commonExpr", "Input": "(4 add 5) mod (4 sub 1)" }, { "-Name": "5.1.1.3 Parenthesis", "-Rule": "boolcommonExpr", "Input": "(4 add 5) mod (4 sub 1) eq 0" }, { "-Name": "5.1.1.4.1 contains", "-Rule": "boolCommonExpr", "Input": "contains(CompanyName,'lfreds')" }, { "-Name": "5.1.1.4.2 endswith", "-Rule": "boolCommonExpr", "Input": "endswith(CompanyName,'Futterkiste')" }, { "-Name": "5.1.1.4.3 startswith", "-Rule": "boolCommonExpr", "Input": "startswith(CompanyName,'Futterkiste')" }, { "-Name": "5.1.1.4.3 startswith", "-Rule": "boolCommonExpr", "Input": "startswith(Supplier/Name,'Futterkiste')" }, { "-Name": "5.1.1.4.4 length", "-Rule": "boolCommonExpr", "Input": "length(CompanyName) eq 19" }, { "-Name": "5.1.1.4.5 indexof", "-Rule": "boolCommonExpr", "Input": "indexof(CompanyName,'lfreds') eq 1" }, { "-Name": "5.1.1.4.6 substring", "-Rule": "commonExpr", "Input": "substring(CompanyName, 5)" }, { "-Name": "5.1.1.4.6 substring with length", "-Rule": "commonExpr", "Input": "substring(CompanyName,5,2)" }, { "-Name": "5.1.1.4.7 tolower", "-Rule": "commonExpr", "Input": "tolower(CompanyName)" }, { "-Name": "5.1.1.4.8 toupper", "-Rule": "commonExpr", "Input": "toupper(CompanyName)" }, { "-Name": "5.1.1.4.9 trim", "-Rule": "commonExpr", "Input": "trim(CompanyName)" }, { "-Name": "5.1.1.4.10 concat", "-Rule": "commonExpr", "Input": "concat(CompanyName, Name)" }, { "-Name": "5.1.1.4.10 concat", "-Rule": "commonExpr", "Input": "concat(concat(Street,'-'),City)" }, { "-Name": "5.1.1.4.11 year", "-Rule": "commonExpr", "Input": "year(BirthDate)" }, { "-Name": "5.1.1.4.12", "-Rule": "commonExpr", "Input": "month(BirthDate)" }, { "-Name": "5.1.1.4.13", "-Rule": "commonExpr", "Input": "day(BirthDate)" }, { "-Name": "5.1.1.4.14", "-Rule": "commonExpr", "Input": "hour(BirthDate)" }, { "-Name": "5.1.1.4.15", "-Rule": "commonExpr", "Input": "minute(BirthDate)" }, { "-Name": "5.1.1.4.16", "-Rule": "commonExpr", "Input": "second(BirthDate)" }, { "-Name": "5.1.1.4.17", "-Rule": "commonExpr", "Input": "fractionalseconds(LifeTime)" }, { "-Name": "5.1.1.4.18", "-Rule": "commonExpr", "Input": "totalseconds(LifeTime)" }, { "-Name": "5.1.1.4.19", "-Rule": "commonExpr", "Input": "date(LifeTime)" }, { "-Name": "5.1.1.4.20", "-Rule": "commonExpr", "Input": "time(ReleaseDate)" }, { "-Name": "5.1.1.4.21 - totaloffsetminutes", "-Rule": "commonExpr", "Input": "totaloffsetminutes(ReleaseDate)" }, { "-Name": "5.1.1.4.22", "-Rule": "commonExpr", "Input": "now()" }, { "-Name": "5.1.1.4.23", "-Rule": "commonExpr", "Input": "maxdatetime()" }, { "-Name": "5.1.1.4.24", "-Rule": "commonExpr", "Input": "mindatetime()" }, { "-Name": "5.1.1.4.25", "-Rule": "commonExpr", "Input": "round(Price)" }, { "-Name": "5.1.1.4.26", "-Rule": "commonExpr", "Input": "floor(Price)" }, { "-Name": "5.1.1.4.27", "-Rule": "commonExpr", "Input": "ceiling(Price)" }, { "-Name": "5.1.1.4.28 isof(1)", "-Rule": "isofExpr", "Input": "isof(Model.Customer)" }, { "-Name": "5.1.1.4.28 isof(2)", "-Rule": "isofExpr", "Input": "isof(Category,Model.Customer)" }, { "-Name": "5.1.1.4.28 isof(2)", "-Rule": "isofExpr", "Input": "isof(Location,Edm.GeographyPoint)" }, { "-Name": "5.1.1.4.29 cast(1)", "-Rule": "commonExpr", "Input": "cast(Model.Customer)" }, { "-Name": "5.1.1.4.29 cast(2)", "-Rule": "commonExpr", "Input": "cast(Category,Model.Customer)" }, { "-Name": "5.1.1.4.29 cast(3)", "-Rule": "commonExpr", "Input": "cast(Category,Edm.Boolean)" }, { "-Name": "5.1.1.4.30 geo.distance", "-Rule": "commonExpr", "Input": "geo.distance(Supplier/Location,Product/Location)" }, { "-Name": "5.1.1.4.31 geo.intersects", "-Rule": "boolCommonExpr", "Input": "geo.intersects(Supplier/SalesArea,Product/Location)" }, { "-Name": "5.1.1.4.32 geo.length", "-Rule": "commonExpr", "Input": "geo.length(Line)" }, { "-Name": "5.1.1.4.32 geo.length", "-Rule": "commonExpr", "Input": "geo.length(geography'SRID=0;LineString(142.1 64.1,3.14 2.78)')" }, { "-Name": "5.1.1.5 any()", "-Rule": "anyExpr", "Input": "any()" }, { "-Name": "5.1.1.5 any()", "-Rule": "anyExpr", "Input": "any( )" }, { "-Name": "5.1.1.5 any()", "-Rule": "anyExpr", "Input": "any(lambda:true)" }, { "-Name": "5.1.1.5 any()", "-Rule": "anyExpr", "Input": "any( lambda : true )" }, { "-Name": "5.1.1.5 any()", "-Rule": "commonExpr", "Input": "Products/any(lambda:true)" }, { "-Name": "5.1.1.5 any() - requires a path prefix", "-Rule": "boolCommonExpr", "-FailAt": "3", "Input": "any()" }, { "-Name": "5.1.1.5 any()", "-Rule": "commonExpr", "Input": "Supplier/Products/any(lambda:true)" }, { "-Name": "5.1.1.5 any()", "-Rule": "firstMemberExpr", "Input": "$it/Completed" }, { "-Name": "5.1.1.5 any()", "-Rule": "firstMemberExpr", "Input": "lambda/Completed" }, { "-Name": "5.1.1.5 any()", "-Rule": "commonExpr", "Input": "Products/any(lambda:lambda/Completed)" }, { "-Name": "5.1.1.5 any()", "-Rule": "commonExpr", "Input": "Products/any(lambda:$it/Completed)" }, { "-Name": "5.1.1.5 lambdaPredicateExpr", "-Rule": "boolCommonExpr", "Input": "$it eq 'Hugo'" }, { "-Name": "5.1.1.5 lambdaPredicateExpr", "-Rule": "boolCommonExpr", "Input": "lambda/Name eq $it/Name" }, { "-Name": "5.1.1.5 all()", "-Rule": "boolCommonExpr", "Input": "Products/all(lambda:true)" }, { "-Name": "5.1.1.5 all() - requires path prefix", "-Rule": "boolCommonExpr", "-FailAt": "3", "Input": "all(lambda:true)" }, { "-Name": "5.1.1.5 all() - must contain a lambda expression", "-Rule": "boolCommonExpr", "-FailAt": "13", "Input": "Products/all()" }, { "-Name": "5.1.1.5 all()", "-Rule": "commonExpr", "Input": "Products/all(lambda:true)" }, { "-Name": "5.1.1.5 all()", "-Rule": "commonExpr", "Input": "EmailAddresses/all(lambda:true)" }, { "-Name": "5.1.1.6.1 primitive literal", "-Rule": "filter", "Input": "$filter=ReleaseDate gt 2013-05-24" }, { "-Name": "5.1.1.6.4 $it", "-Rule": "filter", "Input": "$filter=endswith($it,'.com')" }, { "-Name": "5.1.1.6.4 $it with alias for entity reference", "-Rule": "queryOptions", "Input": "$filter=$it eq @ref&@ref={\"odata.id\":\"http://host/service/ZqV5t\"}" }, { "-Name": "5.1.1.6.4 $it with entity reference", "-Rule": "queryOptions", "Input": "$filter=$it eq {\"odata.ref\":\"http://host/service/ZqV5t\"}" }, { "-Name": "5.1.1.7 Path expressions", "-Rule": "commonExpr", "Input": "Items" }, { "-Name": "5.1.1.7 Path expressions - key access after set navigation", "-Rule": "commonExpr", "Input": "Items(1)" }, { "-Name": "5.1.1.8 aliases", "-Rule": "queryOptions", "Input": "$filter=contains(Title,@word)&@word='Black'" }, { "-Name": "5.1.1.8 aliases", "-Rule": "queryOptions", "Input": "$filter=Title eq @title&@title='Wizard%20of%20Oz'" }, { "-Name": "5.1.2 Expand - single navigation property", "-Rule": "expand", "Input": "$expand=Items" }, { "-Name": "5.1.2 Expand - single navigation property", "-Rule": "expand", "Input": "$expand=Items/$ref" }, { "-Name": "5.1.2 Expand - multiple navigation properties", "-Rule": "expand", "Input": "$expand=Customer,Items" }, { "-Name": "5.1.2 Expand - multiple navigation properties", "-Rule": "expand", "Input": "$expand=Customer/$ref,Items" }, { "-Name": "5.1.2 Expand - multiple navigation properties, nested", "-Rule": "expand", "Input": "$expand=Customer,Items($expand=Product)" }, { "-Name": "5.1.2 Expand - multiple navigation properties, nested", "-Rule": "expand", "Input": "$expand=Customer($levels=4)" }, { "-Name": "5.1.2 Expand - multiple navigation properties, nested", "-Rule": "expand", "Input": "$expand=Customer,Items($expand=Product/$ref)" }, { "-Name": "5.1.2 Expand - no $level after $ref", "-Rule": "expand", "-FailAt": "22", "Input": "$expand=Customer/$ref($levels=4)" }, { "-Name": "5.1.2 Expand - no $select after $ref", "-Rule": "expand", "-FailAt": "22", "Input": "$expand=Customer/$ref($select=Name)" }, { "-Name": "5.1.2 Expand - no $expand after $ref", "-Rule": "expand", "-FailAt": "28", "Input": "$expand=Customer,Items/$ref($expand=Product)" }, { "-Name": "5.1.2 Expand - $count", "-Rule": "expand", "Input": "$expand=Items($count=true)" }, { "-Name": "5.1.2 Expand - $count", "-Rule": "expand", "Input": "$expand=Items/$count" }, { "-Name": "5.1.2 Expand - $count", "-Rule": "expand", "Input": "$expand=Items/$count($filter=Name eq 'Hugo')" }, { "-Name": "5.1.2 Expand - $count", "-Rule": "expand", "Input": "$expand=Items/$count($search=Hugo)" }, { "-Name": "5.1.2 Expand - no $count after $count", "-Rule": "expand", "-FailAt": "21", "Input": "$expand=Items/$count($count=true)" }, { "-Name": "5.1.2 Expand - multiple nested options", "-Rule": "expand", "Input": "$expand=Items($select=Quantity;$expand=Product($select=Name,Price))" }, { "-Name": "5.1.2 Expand - navigation property in complex type", "-Rule": "expand", "Input": "$expand=Address/Country" }, { "-Name": "5.1.2 Expand - navigation property in collection of complex type", "-Rule": "expand", "Input": "$expand=Addresses/Country" }, { "-Name": "5.1.2 Expand - levels", "-Rule": "expand", "Input": "$expand=Category($levels=4),Category($levels=max)" }, { "-Name": "5.1.2 Expand - star", "-Rule": "expand", "Input": "$expand=*,*/$ref,*($levels=2),Category" }, { "-Name": "5.1.3 Select - simple", "-Rule": "select", "Input": "$select=Rating,ReleaseDate" }, { "-Name": "5.1.3 Select - with star", "-Rule": "select", "Input": "$select=*" }, { "-Name": "5.1.3 Select - with property of complex property", "-Rule": "select", "Input": "$select=Address/Street" }, { "-Name": "5.1.3 Select - with property of complex property", "-Rule": "select", "Input": "$select=Address/Country" }, { "-Name": "5.1.3 Select - with cast", "-Rule": "select", "Input": "$select=Address/Model.AddressWithLocation" }, { "-Name": "5.1.3 Select - with cast and property of complex property", "-Rule": "select", "Input": "$select=Address/Model.AddressWithLocation/Location" }, { "-Name": "5.1.3 Select - with expand", "-Rule": "queryOptions", "Input": "$expand=Category($select=Name)" }, { "-Name": "5.1.3 Select - qualifiedEntityTypeName", "-Rule": "select", "Input": "$select=Model.PreferredSupplier/Name" }, { "-Name": "5.1.3 Select - actions by namespace", "-Rule": "select", "Input": "$select=Model.ActionName,Model.MostPopularName,Model.*" }, { "-Name": "5.1.3 Select - actions and functions with signature", "-Rule": "select", "Input": "$select=Model.ActionName,Model.MostPopularName(Location,Kind)" }, { "-Name": "5.1.3 Select - tricky", "-Rule": "select", "Input": "$select=Namespace.PreferredSupplier/AccountRepresentative,Address/Street" }, { "-Name": "5.1.4 OrderBy", "-Rule": "orderby", "Input": "$orderby=Name" }, { "-Name": "5.1.4 OrderBy asc", "-Rule": "orderby", "Input": "$orderby=Name asc" }, { "-Name": "5.1.4 OrderBy mixed", "-Rule": "orderby", "Input": "$orderby=Name asc,Rating,ReleaseDate desc" }, { "-Name": "5.1.5 Top and Skip", "-Rule": "queryOptions", "Input": "$top=5&$skip=10" }, { "-Name": "5.1.6 Inlinecount", "-Rule": "queryOptions", "Input": "$count=true" }, { "-Name": "5.1.6 Inlinecount", "-Rule": "queryOptions", "Input": "$count=false" }, { "-Name": "5.1.6 Inlinecount", "-Rule": "queryOptions", "-FailAt": "6", "Input": "$count" }, { "-Name": "5.1.7 Search - simple term", "-Rule": "queryOptions", "Input": "$search=blue" }, { "-Name": "5.1.7 Search - simple phrase", "-Rule": "queryOptions", "Input": "$search=\"blue%20green\"" }, { "-Name": "5.1.7 Search - simple phrase", "-Rule": "queryOptions", "Input": "$search=\"blue%20green%22" }, { "-Name": "5.1.7 Search - phrase with escaped double-quote", "-Rule": "queryOptions", "Input": "$search=\"blue\\\"green\"" }, { "-Name": "5.1.7 Search - phrase with escaped backslash", "-Rule": "queryOptions", "Input": "$search=\"blue\\\\green\"" }, { "-Name": "5.1.7 Search - phrase with unescaped double-quote", "-Rule": "queryOptions", "-FailAt": "14", "Input": "$search=\"blue\"green\"" }, { "-Name": "5.1.7 Search - phrase with unescaped double-quote", "-Rule": "queryOptions", "-FailAt": "16", "Input": "$search=\"blue%22green\"" }, { "-Name": "5.1.7 Search - implicit AND", "-Rule": "queryOptions", "Input": "$search=blue green" }, { "-Name": "5.1.7 Search - AND", "-Rule": "queryOptions", "Input": "$search=blue AND green" }, { "-Name": "5.1.7 Search - OR", "-Rule": "queryOptions", "Input": "$search=blue OR green" }, { "-Name": "5.1.7 Search - NOT", "-Rule": "queryOptions", "Input": "$search=blue NOT green" }, { "-Name": "5.1.7 Search - only NOT", "-Rule": "queryOptions", "Input": "$search=NOT blue" }, { "-Name": "5.1.7 Search - multiple", "-Rule": "queryOptions", "Input": "$search=foo AND bar OR foo AND baz OR that AND bar OR that AND baz" }, { "-Name": "5.1.7 Search - multiple", "-Rule": "queryOptions", "Input": "$search=(foo OR that) AND (bar OR baz)" }, { "-Name": "5.1.7 Search - grouping", "-Rule": "queryOptions", "Input": "$search=foo AND (bar OR baz)" }, { "-Name": "5.1.7 Search - grouping", "-Rule": "queryOptions", "Input": "$search=(foo AND bar) OR baz" }, { "-Name": "5.1.7 Search - grouping", "-Rule": "queryOptions", "Input": "$search=(NOT foo) OR baz" }, { "-Name": "5.1.7 Search - grouping", "-Rule": "queryOptions", "Input": "$search=(NOT foo)" }, { "-Name": "5.1.7 Search - on entity set", "-Rule": "odataUri", "Input": "http://serviceRoot/Products?$search=blue" }, { "-Name": "5.1.7 Search - on entity container", "-Rule": "odataUri", "Input": "http://serviceRoot/Model.Container/$all?$search=blue" }, { "-Name": "5.1.7 Search - on service", "-Rule": "odataUri", "Input": "http://serviceRoot/$all?$search=blue" }, { "-Name": "5.1.8 Format", "-Rule": "queryOptions", "Input": "$format=json&$format=atom&$format=xml&$format=text/html" }, { "-Name": "5.1.8 Format - is case-insensitive", "-Rule": "queryOptions", "Input": "$format=JSON&$format=Atom&$format=XML&$format=text/html" }, { "-Name": "5.1.8 Format - media type", "-Rule": "queryOptions", "Input": "$format=text/html" }, { "-Name": "Next Link", "-Rule": "skiptoken", "Input": "$skiptoken=Start@Next_Chunk:From?=Here!" }, { "-Name": "Next Link: no Ampersand", "-Rule": "skiptoken", "-FailAt": "14", "Input": "$skiptoken=Not&this" }, { "-Name": "5.2 Custom Query Option", "-Rule": "customQueryOption", "Input": "search=O%27Neil" }, { "-Name": "5.2 Custom Query Option", "-Rule": "customQueryOption", "Input": "!deltatoken='201208210403'" }, { "-Name": "5.2 Custom Query Option", "-Rule": "customQueryOption", "Input": "!special" }, { "-Name": "5.2 Custom Query Option", "-Rule": "queryOptions", "Input": "search=O%27Neil&!special" }, { "-Name": "5.2 Custom Query Option", "-Rule": "queryOptions", "Input": "$orderby=Name&!deltatoken=0412312321" }, { "-Name": "complex parameter value - no properties", "-Rule": "complexInUri", "Input": "{}" }, { "-Name": "function with complex parameter - no properties", "-Rule": "odataRelativeUri", "Input": "ProductsByComplex(complex=@c)?@c={}" }, { "-Name": "function with complex parameter - one property", "-Rule": "odataRelativeUri", "Input": "ProductsByComplex(complex=@c)?@c={\"Name\":\"Value\"}" }, { "-Name": "function with complex parameter - one property", "-Rule": "odataRelativeUri", "Input": "ProductsByComplex(complex=@c)?@c={\"odata.type\":\"Model.Customer\",\"Name\":\"Value\"}" }, { "-Name": "function with complex parameter - three properties", "-Rule": "odataRelativeUri", "Input": "ProductsByComplex(complex=@c)?@c={\"Name\":false,\"Price\":3.14e0,\"Rating\":null}" }, { "-Name": "function with collection of primitive - zero", "-Rule": "odataRelativeUri", "Input": "ProductsByColor(colors=@c)?@c=[]" }, { "-Name": "function with collection of primitive - one", "-Rule": "odataRelativeUri", "Input": "ProductsByColor(colors=@c)?@c=[\"red\"]" }, { "-Name": "function with collection of primitive - two", "-Rule": "odataRelativeUri", "Input": "ProductsByColor(colors=@c)?@c=[\"red\",\"green\"]" }, { "-Name": "function with complex parameter - complex and collection properties", "-Rule": "odataRelativeUri", "Input": "ProductsByComplex(complex=@c)?@c={\"Names\":[\"Fred\",\"George\"],\"Address\":{\"Street\":\"MyWay\"}}" }, { "-Name": "function with rootExpr", "-Rule": "odataRelativeUri", "Input": "ProductsByCustomer(customer=@c)?@c=$root/Customers(1)" }, { "-Name": "function with rootExpr - single navigation", "-Rule": "odataRelativeUri", "Input": "ProductsByCustomer(customer=@c)?@c=$root/Customers(1)/Model.VipCustomer/AccountRepresentative" }, { "-Name": "function with rootExpr - array", "-Rule": "odataRelativeUri", "Input": "ProductsByCustomer(customer=@c)?@c=[$root/Customers(1),$root/Customers(2)]" }, { "-Name": "function with rootExpr - complex with single navigation", "-Rule": "odataRelativeUri", "Input": "ProductsByCustomer(customer=@c)?@c={\"Country\":$root/Countries('DE')}" }, { "-Name": "function with rootExpr - complex with collection navigation", "-Rule": "odataRelativeUri", "Input": "ProductsByCustomer(customer=@c)?@c={\"Orders\":[$root/Orders(1)]}" }, { "-Name": "Enumeration value in URI", "-Rule": "enum", "Input": "Sales.Pattern'Yellow'" }, { "-Name": "Enumeration value in URI - multiple flag values", "-Rule": "enum", "Input": "Sales.Pattern'Solid,Yellow'" }, { "-Name": "Enumeration value - in filter", "-Rule": "filter", "Input": "$filter=style eq Sales.Pattern'Yellow'" }, { "-Name": "Enumeration value - in filter with has", "-Rule": "filter", "Input": "$filter=style has Sales.Pattern'Yellow'" }, { "-Name": "Enumeration value - undefined value as numeric constant", "-Rule": "filter", "Input": "$filter=style has Sales.Pattern'32'" }, { "-Name": "Enumeration value - undefined value as numeric constant", "-Rule": "odataRelativeUri", "Input": "Products?$filter=style eq Sales.Pattern'Yellow,32'" }, { "-Name": "Enumeration value - undefined value as numeric constant", "-Rule": "odataRelativeUri", "Input": "Products?$filter=style eq cast(eyeColor,Sales.Pattern)" }, { "-Name": "Functions in commonExpr", "-Rule": "commonExpr", "Input": "Model.Available()" }, { "-Name": "Functions in commonExpr", "-Rule": "commonExpr", "-FailAt": "15", "Input": "Model.Available" }, { "-Name": "Functions in commonExpr - directly call function", "-Rule": "commonExpr", "Input": "Model.MostPopularName()" }, { "-Name": "Functions in commonExpr - after collection navigation", "-Rule": "commonExpr", "Input": "Products/Model.Available()" }, { "-Name": "Functions in commonExpr - composed functions", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/Model.MostPopularName()" }, { "-Name": "Functions in commonExpr - singleNavigation", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/Name" }, { "-Name": "Functions in commonExpr - singleNavigation", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/Model.BestSellingProduct/Name" }, { "-Name": "Functions in commonExpr - singleNavigation", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/Name/Model.Available()" }, { "-Name": "Functions in commonExpr - singleNavigation", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/Address" }, { "-Name": "Functions in commonExpr - singleNavigation", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/Address/Street" }, { "-Name": "Functions in commonExpr - singleNavigation", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/Addresses" }, { "-Name": "Functions in commonExpr - singleNavigation", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/Addresses/Model.MostPopularName()" }, { "-Name": "Functions in commonExpr - singleNavigation", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/EmailAddresses" }, { "-Name": "Functions in commonExpr - stream property", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/Thumbnail" }, { "-Name": "Functions in commonExpr - singleNavigation with any", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/EmailAddresses/any()" }, { "-Name": "Functions in commonExpr - singleNavigation with all", "-Rule": "commonExpr", "Input": "Products/Model.BestProduct()/EmailAddresses/all(lambda:true)" }, { "-Name": "Functions in commonExpr - collectionNavigation", "-Rule": "commonExpr", "Input": "Products/Model.ProductsByColor(color='green')/Model.MostPopularName()" }, { "-Name": "Functions in commonExpr - collectionNavigation", "-Rule": "commonExpr", "Input": "Products/Model.ProductsByColor(color='green')/Model.BestSellingProduct/Model.MostPopularName()" }, { "-Name": "Functions in commonExpr - collectionNavigation", "-Rule": "commonExpr", "Input": "Products/Model.ProductsByColor(color=@color)/Model.BestSellingProduct/Model.MostPopularName()" }, { "-Name": "Functions in commonExpr - collectionNavigation with all", "-Rule": "commonExpr", "Input": "Products/Model.ProductsByColor()/all(lambda:true)" }, { "-Name": "Functions in commonExpr - complexPath", "-Rule": "commonExpr", "Input": "Items/Model.MostPopularAddress()/Street" }, { "-Name": "Functions in commonExpr - complexPath", "-Rule": "commonExpr", "Input": "Items/Model.MostPopularAddress()/Address" }, { "-Name": "Functions in commonExpr - complexPath", "-Rule": "commonExpr", "Input": "Items/Model.MostPopularAddress()/Address/Model.Available()" },