From e9ed581de0a6090c513e6fca0052b69396cb3cc8 Mon Sep 17 00:00:00 2001 From: kissand Date: Thu, 12 May 2022 15:59:18 +0200 Subject: 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 --- csit/plans/cps/testplan.txt | 2 +- csit/tests/cm-handle-query/cm-handle-query.robot | 60 ++++++++++++++++++++++ .../public-properties-query.robot | 51 ------------------ 3 files changed, 61 insertions(+), 52 deletions(-) create mode 100644 csit/tests/cm-handle-query/cm-handle-query.robot delete mode 100644 csit/tests/public-properties-query/public-properties-query.robot (limited to 'csit') diff --git a/csit/plans/cps/testplan.txt b/csit/plans/cps/testplan.txt index d4615e7010..c0cf4512dd 100644 --- a/csit/plans/cps/testplan.txt +++ b/csit/plans/cps/testplan.txt @@ -21,4 +21,4 @@ cps-admin 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/cm-handle-query/cm-handle-query.robot b/csit/tests/cm-handle-query/cm-handle-query.robot new file mode 100644 index 0000000000..3adc25362c --- /dev/null +++ b/csit/tests/cm-handle-query/cm-handle-query.robot @@ -0,0 +1,60 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +*** Settings *** +Documentation Public Properties Query Test + +Library Collections +Library OperatingSystem +Library RequestsLibrary +Library BuiltIn + +Suite Setup Create Session CPS_URL http://${CPS_CORE_HOST}:${CPS_CORE_PORT} + +*** Variables *** + +${auth} Basic Y3BzdXNlcjpjcHNyMGNrcyE= +${ncmpBasePath} /ncmp/v1 +${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 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=${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}/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} diff --git a/csit/tests/public-properties-query/public-properties-query.robot b/csit/tests/public-properties-query/public-properties-query.robot deleted file mode 100644 index 3a640871b9..0000000000 --- a/csit/tests/public-properties-query/public-properties-query.robot +++ /dev/null @@ -1,51 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -*** Settings *** -Documentation Public Properties Query Test - -Library Collections -Library OperatingSystem -Library RequestsLibrary -Library BuiltIn - -Suite Setup Create Session CPS_URL http://${CPS_CORE_HOST}:${CPS_CORE_PORT} - -*** Variables *** - -${auth} Basic Y3BzdXNlcjpjcHNyMGNrcyE= -${ncmpBasePath} /ncmp/v1 -${jsonMatchingQueryParameters} {"publicCmHandleProperties": {"Contact" : "newemailforstore@bookstore.com", "Contact2" : "storeemail2@bookstore.com"}} -${jsonMissingPropertyQueryParameters} {"publicCmHandleProperties": { "" : "doesnt matter"}} - -*** Test Cases *** -Retrieve CM Handles where query parameters Match - ${uri}= Set Variable ${ncmpBasePath}/data/ch/searches - ${headers}= Create Dictionary Content-Type=application/json Authorization=${auth} - ${response}= POST On Session CPS_URL ${uri} headers=${headers} data=${jsonMatchingQueryParameters} - ${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 - ${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} -- cgit 1.2.3-korg