CSIT for trust level epic

Issue-ID: CPS-1976
Change-Id: I00cef4bc4fef0744616de8a0fb9ad153842d4452
Signed-off-by: halil.cakal <halil.cakal@est.tech>
Signed-off-by: JvD_Ericsson <jeff.van.dam@est.tech>
diff --git a/csit/plans/cps/testplan.txt b/csit/plans/cps/testplan.txt
index 1775ad3..45e8381 100644
--- a/csit/plans/cps/testplan.txt
+++ b/csit/plans/cps/testplan.txt
@@ -24,4 +24,5 @@
 cps-subscriptions
 ncmp-passthrough
 cm-handle-query
+cps-trust-level
 cps-data-operations
\ No newline at end of file
diff --git a/csit/tests/cps-trust-level/cps-trust-level.robot b/csit/tests/cps-trust-level/cps-trust-level.robot
new file mode 100644
index 0000000..5a16a34
--- /dev/null
+++ b/csit/tests/cps-trust-level/cps-trust-level.robot
@@ -0,0 +1,90 @@
+/*
+ *  ============LICENSE_START=======================================================
+ *  Copyright (C) 2023 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         Trust Level Test
+
+Library               Collections
+Library               OperatingSystem
+Library               RequestsLibrary
+Library               BuiltIn
+Library               ConfluentKafkaLibrary
+
+Suite Setup           Create Session    CPS_URL    http://${CPS_CORE_HOST}:${CPS_CORE_PORT}
+
+*** Variables ***
+${auth}                                     Basic Y3BzdXNlcjpjcHNyMGNrcyE=
+${ncmpInventoryBasePath}                    /ncmpInventory
+${ncmpBasePath}                             /ncmp/v1
+${dmiUrl}                                   http://${DMI_HOST}:${DMI_PORT}
+${jsonCreateCmHandles}                      {"dmiPlugin":"${dmiUrl}","dmiDataPlugin":"","dmiModelPlugin":"","createdCmHandles":[{"trustLevel":"COMPLETE","cmHandle":"CH-1"},{"trustLevel":"COMPLETE","cmHandle":"CH-2"},{"cmHandle":"CH-3"},{"trustLevel":"NONE","cmHandle":"CH-4"}]}
+${jsonTrustLevelPropertyQueryParameters}    {"cmHandleQueryParameters": [{"conditionName": "cmHandleWithTrustLevel", "conditionParameters": [ {"trustLevel": "COMPLETE"} ] }]}
+${jsonTrustLevelQueryResponse}              {"data":{"attributeValueChange":[{"attributeName":"trustLevel","newAttributeValue":"NONE"}]}}
+${partitionId}                              ${0}
+
+*** Test Cases ***
+Register data node and verify notification
+    ${group_id}=           Create Consumer
+    ${topic_partition}=    Create Topic Partition    cm-events      ${partitionId}
+    ${offset}=             Get Watermark Offsets     ${group_id}    ${topic_partition}
+    ${tp}=                 Create Topic Partition    cm-events      ${partitionId}    ${offset[1]}
+    Assign To Topic Partition  ${group_id}  ${tp}
+    Sleep  5sec
+    Register Data Nodes
+    ${result}=      Poll                    group_id=${group_id}  only_value=False  poll_attempts=5
+    ${headers}                      Set Variable                ${result[0].headers()}
+    ${payload}                      Set Variable                ${result[0].value()}
+    FOR   ${header_key_value_pair}   IN  @{headers}
+        Compare Header Values       ${header_key_value_pair[0]}   ${header_key_value_pair[1]}     "ce_specversion"      "1.0"
+        Compare Header Values       ${header_key_value_pair[0]}   ${header_key_value_pair[1]}     "ce_source"           "NCMP"
+        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"
+        Compare Header Values       ${header_key_value_pair[0]}   ${header_key_value_pair[1]}     "ce_correlationid"    "CH-4"
+    END
+    Should Be Equal As Strings      ${payload}    ${jsonTrustLevelQueryResponse}
+    [Teardown]    Basic Teardown    ${group_id}
+
+Retrieve CM Handle ids where query parameters Match (trust level 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=${jsonTrustLevelPropertyQueryParameters}
+    ${responseJson}=     Set Variable       ${response.json()}
+    Should Be Equal As Strings              ${response.status_code}   200
+    Should Contain       ${responseJson}    CH-1
+    Should Contain       ${responseJson}    CH-2
+    Should Contain       ${responseJson}    CH-3
+    Should Not Contain   ${responseJson}    CH-4
+
+*** Keywords ***
+Register Data Nodes
+    ${uri}=         Set Variable         ${ncmpInventoryBasePath}/v1/ch
+    ${headers}=     Create Dictionary    Content-Type=application/json    Authorization=${auth}
+    ${response}=    POST On Session      CPS_URL   ${uri}    headers=${headers}    data=${jsonCreateCmHandles}
+    Should Be Equal As Strings           ${response.status_code}    200
+
+Compare Header Values
+    [Arguments]    ${header_key}    ${header_value}    ${header_to_check}    ${expected_header_value}
+    IF    "${header_key}" == ${header_to_check}
+        Should Be Equal As Strings    "${header_value}"    ${expected_header_value}
+    END
+
+Basic Teardown
+    [Arguments]       ${group_id}
+    Unsubscribe       ${group_id}
+    Close Consumer    ${group_id}
\ No newline at end of file