Merge "CPS-1020 : DuplicatedYangResourceException error at parallel cmHandle registra...
[cps.git] / csit / tests / cm-handle-query / cm-handle-query.robot
1 /*
2  *  ============LICENSE_START=======================================================
3  *  Copyright (C) 2022 Nordix Foundation
4  *  ================================================================================
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *        http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  *  SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 *** Settings ***
22 Documentation         Public Properties Query Test
23
24 Library               Collections
25 Library               OperatingSystem
26 Library               RequestsLibrary
27 Library               BuiltIn
28
29 Suite Setup           Create Session      CPS_URL    http://${CPS_CORE_HOST}:${CPS_CORE_PORT}
30
31 *** Variables ***
32
33 ${auth}                                     Basic Y3BzdXNlcjpjcHNyMGNrcyE=
34 ${ncmpBasePath}                             /ncmp/v1
35 ${jsonModuleAndPropertyQueryParameters}     {"cmHandleQueryParameters": [{"conditionName": "hasAllModules", "conditionParameters": [ {"moduleName": "iana-crypt-hash"} ]}, {"conditionName": "hasAllProperties", "conditionParameters": [ {"Contact": "newemailforstore@bookstore.com"} ]}]}
36 ${jsonEmptyQueryParameters}                 {}
37 ${jsonMissingPropertyQueryParameters}       {"cmHandleQueryParameters": [{"conditionName": "hasAllProperties", "conditionParameters": [{"" : "doesnt matter"}]}]}
38
39 *** Test Cases ***
40 Retrieve CM Handle ids where query parameters Match (module and property query)
41     ${uri}=              Set Variable       ${ncmpBasePath}/ch/id-searches
42     ${headers}=          Create Dictionary  Content-Type=application/json   Authorization=${auth}
43     ${response}=         POST On Session    CPS_URL   ${uri}   headers=${headers}   data=${jsonModuleAndPropertyQueryParameters}
44     ${responseJson}=     Set Variable       ${response.json()}
45     Should Be Equal As Strings              ${response.status_code}   200
46     Should Contain       ${responseJson}    PNFDemo
47
48 Retrieve CM Handle ids where query parameters Match (empty query)
49     ${uri}=              Set Variable       ${ncmpBasePath}/ch/id-searches
50     ${headers}=          Create Dictionary  Content-Type=application/json   Authorization=${auth}
51     ${response}=         POST On Session    CPS_URL   ${uri}   headers=${headers}   data=${jsonEmptyQueryParameters}
52     ${responseJson}=     Set Variable       ${response.json()}
53     Should Be Equal As Strings              ${response.status_code}   200
54     Should Contain       ${responseJson}    PNFDemo
55
56 Throw 400 when Structure of Request is Incorrect
57     ${uri}=              Set Variable       ${ncmpBasePath}/ch/id-searches
58     ${headers}=          Create Dictionary  Content-Type=application/json   Authorization=${auth}
59     ${response}=         POST On Session    CPS_URL   ${uri}   headers=${headers}   data=${jsonMissingPropertyQueryParameters}    expected_status=400
60     Should Be Equal As Strings              ${response}   <Response [400]>