Merge 2 'query' end points in NCMP

- merge two endpoint for a same backend
- use xPath query instead of sql query
- modify searches endpoint to return a cmHandle object with all public
properties
- handle old (deprecated) queries
- handle public property queries
- create useful examples
- use more verbose error messages
- simplify openapi yamls
- create new query service
- change second endpoint name to a better matched name
- modify legacy tests with new requirements
- create new tests for the new scenarios

Issue-ID: CPS-1016
Change-Id: I7476e9dbd510ec93b5b48ce85d477ecb2dadffff
Signed-off-by: kissand <andras.zoltan.kiss@est.tech>
diff --git a/csit/plans/cps/testplan.txt b/csit/plans/cps/testplan.txt
index d4615e7..c0cf451 100644
--- a/csit/plans/cps/testplan.txt
+++ b/csit/plans/cps/testplan.txt
@@ -21,4 +21,4 @@
 cps-data
 cps-model-sync
 ncmp-passthrough
-public-properties-query
\ No newline at end of file
+cm-handle-query
\ No newline at end of file
diff --git a/csit/tests/public-properties-query/public-properties-query.robot b/csit/tests/cm-handle-query/cm-handle-query.robot
similarity index 60%
rename from csit/tests/public-properties-query/public-properties-query.robot
rename to csit/tests/cm-handle-query/cm-handle-query.robot
index 3a64087..3adc253 100644
--- a/csit/tests/public-properties-query/public-properties-query.robot
+++ b/csit/tests/cm-handle-query/cm-handle-query.robot
@@ -32,20 +32,29 @@
 
 ${auth}                                     Basic Y3BzdXNlcjpjcHNyMGNrcyE=
 ${ncmpBasePath}                             /ncmp/v1
-${jsonMatchingQueryParameters}              {"publicCmHandleProperties": {"Contact" : "newemailforstore@bookstore.com", "Contact2" : "storeemail2@bookstore.com"}}
-${jsonMissingPropertyQueryParameters}       {"publicCmHandleProperties": { "" : "doesnt matter"}}
+${jsonModuleAndPropertyQueryParameters}     {"cmHandleQueryParameters": [{"conditionName": "hasAllModules", "conditionParameters": [ {"moduleName": "iana-crypt-hash"} ]}, {"conditionName": "hasAllProperties", "conditionParameters": [ {"Contact": "newemailforstore@bookstore.com"} ]}]}
+${jsonEmptyQueryParameters}                 {}
+${jsonMissingPropertyQueryParameters}       {"cmHandleQueryParameters": [{"conditionName": "hasAllProperties", "conditionParameters": [{"" : "doesnt matter"}]}]}
 
 *** Test Cases ***
-Retrieve CM Handles where query parameters Match
-    ${uri}=              Set Variable       ${ncmpBasePath}/data/ch/searches
+Retrieve CM Handle ids where query parameters Match (module and property query)
+    ${uri}=              Set Variable       ${ncmpBasePath}/ch/id-searches
     ${headers}=          Create Dictionary  Content-Type=application/json   Authorization=${auth}
-    ${response}=         POST On Session    CPS_URL   ${uri}   headers=${headers}   data=${jsonMatchingQueryParameters}
+    ${response}=         POST On Session    CPS_URL   ${uri}   headers=${headers}   data=${jsonModuleAndPropertyQueryParameters}
+    ${responseJson}=     Set Variable       ${response.json()}
+    Should Be Equal As Strings              ${response.status_code}   200
+    Should Contain       ${responseJson}    PNFDemo
+
+Retrieve CM Handle ids where query parameters Match (empty query)
+    ${uri}=              Set Variable       ${ncmpBasePath}/ch/id-searches
+    ${headers}=          Create Dictionary  Content-Type=application/json   Authorization=${auth}
+    ${response}=         POST On Session    CPS_URL   ${uri}   headers=${headers}   data=${jsonEmptyQueryParameters}
     ${responseJson}=     Set Variable       ${response.json()}
     Should Be Equal As Strings              ${response.status_code}   200
     Should Contain       ${responseJson}    PNFDemo
 
 Throw 400 when Structure of Request is Incorrect
-    ${uri}=              Set Variable       ${ncmpBasePath}/data/ch/searches
+    ${uri}=              Set Variable       ${ncmpBasePath}/ch/id-searches
     ${headers}=          Create Dictionary  Content-Type=application/json   Authorization=${auth}
     ${response}=         POST On Session    CPS_URL   ${uri}   headers=${headers}   data=${jsonMissingPropertyQueryParameters}    expected_status=400
     Should Be Equal As Strings              ${response}   <Response [400]>