trader-server
Version:
OData server for testing strategies, simulating and real trading.
1,873 lines (1,872 loc) • 63.1 kB
JSON
[
{
"-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()"
},