...
http://localhost:8883/ncmp/v1/data/ch/searches
Results - Happy Path
# | Scenario | Request | Response | Notes/Decisions |
---|
1 | Both properties match (Return CM Handles that Match) | { "publicCmHandleProperties": { "Contact": "newemailforstore@bookstore.com" } } | [ "Bookstore1", "PNFDemo" ] |
|
2 | Multiple Entries - both properties match (Return CM Handles that Match) | { "publicCmHandleProperties": { "Contact": "newemailforstore@bookstore.com", "color" : "red" } } | [ "Bookstore1", "Bookstore3", "PNFDemo" ] |
|
3 | No properties given (Return All CM Handles which contain public properties) | "publicCmHandleProperties": { } } | [ "Bookstore4", "Bookstore5", "Bookstore1", "Bookstore2", "Bookstore3", "PNFDemo" ] |
|
Results - Edge Cases
# | Scenario | Request | Response | Notes/Decisions |
---|
1 | Value doesn't match (Return Empty Response) | { "publicCmHandleProperties": { "Contact": "wont match" } } | [ ] |
|
2 | Unknown properties given (Return Empty Response) | { "publicCmHandleProperties": { "UnknwnProperty": "doesnt matter" } } | [ ] |
|
3 | Empty value (valid) (Return CM Handles Returned that Match) | "publicCmHandleProperties": { "color": "" } } | [ "Bookstore4" ] |
|
4 | Empty property (invalid) (BAD_REQUEST) | "publicCmHandleProperties": { "": "doesnt matter " } } | { "status": "400 BAD_REQUEST", "message": "Invalid data", "details": "Missing property - please supply a valid property" } |
|
5 | Multiple entries with one empty property (invalid) (BAD_REQUEST) | { "publicCmHandleProperties": { "color" : "", "" : "doesnt matter", "Contact": "newemailforstore@bookstore.com" } } | { "status": "400 BAD_REQUEST", "message": "Invalid data", "details": "Missing property - please supply a valid property" } |
|
6 | Apostrophe in cm handle (Exception) *** CPS can create a cm handle with a public property value that has an apostrophe but throws exception when queried *** | { "publicCmHandleProperties": { "color" : "won't match" } } | { "status": "500 INTERNAL_SERVER_ERROR", "message": "Error while parsing cpsPath expression", "details": "failed to parse at line 1 due to extraneous input 't' expecting {']', 'and'}" } | Will handle this as and when it arises |
7 | CPS stores Integers as Strings. | Given the public properties below Code Block |
---|
| {
"cmHandle": "Bookstore6",
publicCmHandleProperties": {
"color": 12345
}
}, {
"cmHandle": "Bookstore7",
"publicCmHandleProperties": {
"color": "12345"
}
} |
When stored in CPS Integers are stored as Strings. xpath | attributes |
---|
/dmi-registry/cm-handles[@id='Bookstore6']/public-properties[@name='color'] | {"name": "color", "value": "12345"} | /dmi-registry/cm-handles[@id='Bookstore7']/public-properties[@name='color'] | {"name": "color", "value": "12345"} |
Therefore the two requests below return both cm handles regardless of wanting Integer or String.
{ "publicCmHandleProperties": { "color" : "12345" } }
{ "publicCmHandleProperties": { "color" : 12345 } } | [ "Bookstore6", "Bookstore7" ] |
|
Future Example (Out-of-scope)
...