Remove deprecated cmSubscription code
[cps.git] / csit / tests / cps-trust-level / cps-trust-level.robot
1 /*
2  *  ============LICENSE_START=======================================================
3  *  Copyright (C) 2023 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         Trust Level Test
23
24 Library               Collections
25 Library               OperatingSystem
26 Library               RequestsLibrary
27 Library               BuiltIn
28 Library               ConfluentKafkaLibrary
29
30 Suite Setup           Create Session    CPS_URL    http://${CPS_CORE_HOST}:${CPS_CORE_PORT}
31
32 *** Variables ***
33 ${auth}                                     Basic Y3BzdXNlcjpjcHNyMGNrcyE=
34 ${ncmpInventoryBasePath}                    /ncmpInventory
35 ${ncmpBasePath}                             /ncmp/v1
36 ${dmiUrl}                                   http://${DMI_HOST}:${DMI_PORT}
37 ${jsonCreateCmHandles}                      {"dmiPlugin":"${dmiUrl}","dmiDataPlugin":"","dmiModelPlugin":"","createdCmHandles":[{"trustLevel":"COMPLETE","cmHandle":"CH-1"},{"trustLevel":"COMPLETE","cmHandle":"CH-2"},{"cmHandle":"CH-3"},{"trustLevel":"NONE","cmHandle":"CH-4"}]}
38 ${jsonTrustLevelPropertyQueryParameters}    {"cmHandleQueryParameters": [{"conditionName": "cmHandleWithTrustLevel", "conditionParameters": [ {"trustLevel": "COMPLETE"} ] }]}
39 ${jsonTrustLevelQueryResponse}              {"data":{"attributeValueChange":[{"attributeName":"trustLevel","newAttributeValue":"NONE"}]}}
40
41 *** Test Cases ***
42 Register data node
43     ${uri}=         Set Variable         ${ncmpInventoryBasePath}/v1/ch
44     ${headers}=     Create Dictionary    Content-Type=application/json    Authorization=${auth}
45     ${response}=    POST On Session      CPS_URL   ${uri}    headers=${headers}    data=${jsonCreateCmHandles}
46     Should Be Equal As Strings           ${response.status_code}    200
47     Sleep           5
48
49 Verify notification
50     ${group_id}=         Create Consumer     auto_offset_reset=earliest
51     Subscribe Topic      topics=cm-events     group_id=${group_id}
52     ${result}=      Poll                    group_id=${group_id}  only_value=False  poll_attempts=5
53     ${headers}                      Set Variable                ${result[0].headers()}
54     ${payload}                      Set Variable                ${result[0].value()}
55     FOR   ${header_key_value_pair}   IN  @{headers}
56         Compare Header Values       ${header_key_value_pair[0]}   ${header_key_value_pair[1]}     "ce_specversion"      "1.0"
57         Compare Header Values       ${header_key_value_pair[0]}   ${header_key_value_pair[1]}     "ce_source"           "NCMP"
58         Compare Header Values       ${header_key_value_pair[0]}   ${header_key_value_pair[1]}     "ce_type"             "org.onap.cps.ncmp.events.avc.ncmp_to_client.AvcEvent"
59         Compare Header Values       ${header_key_value_pair[0]}   ${header_key_value_pair[1]}     "ce_correlationid"    "CH-4"
60     END
61     Should Be Equal As Strings      ${payload}    ${jsonTrustLevelQueryResponse}
62     [Teardown]    Basic Teardown    ${group_id}
63
64 Retrieve CM Handle ids where query parameters Match (trust level query)
65     ${uri}=              Set Variable       ${ncmpBasePath}/ch/id-searches
66     ${headers}=          Create Dictionary  Content-Type=application/json   Authorization=${auth}
67     ${response}=         POST On Session    CPS_URL   ${uri}   headers=${headers}   data=${jsonTrustLevelPropertyQueryParameters}
68     ${responseJson}=     Set Variable       ${response.json()}
69     Should Be Equal As Strings              ${response.status_code}   200
70     Should Contain       ${responseJson}    CH-1
71     Should Contain       ${responseJson}    CH-2
72     Should Contain       ${responseJson}    CH-3
73     Should Not Contain   ${responseJson}    CH-4
74
75 *** Keywords ***
76
77 Compare Header Values
78     [Arguments]    ${header_key}    ${header_value}    ${header_to_check}    ${expected_header_value}
79     IF    "${header_key}" == ${header_to_check}
80         Should Be Equal As Strings    "${header_value}"    ${expected_header_value}
81     END
82
83 Basic Teardown
84     [Arguments]       ${group_id}
85     Unsubscribe       ${group_id}
86     Close Consumer    ${group_id}