# ============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 *** Library ConfluentKafkaLibrary Library Collections Library OperatingSystem Library RequestsLibrary Suite Setup Starting Test *** Variables *** ${auth} Basic Y3BzdXNlcjpjcHNyMGNrcyE= ${basePath} /ncmpInventory/v1/ch *** Test Cases *** Create CM Handle Create Session CPS_URL http://${CPS_CORE_HOST}:${CPS_CORE_PORT} ${headers} Create Dictionary Content-Type=application/json Authorization=${auth} ${jsonData}= Get Binary File ${DATADIR_SUBS_NOTIFICATION}${/}createCmHandleRequestBody.json ${response}= POST On Session CPS_URL ${basePath} headers=${headers} data=${jsonData} Should Be Equal As Strings ${response.status_code} 200 Sleep 5 wait some time to get updated in the db Verify Kafka flow for Subscription Creation Notification ${group_id}= Create Consumer Subscribe Topic group_id=${group_id} topics=${RESPONSE_TOPIC} Wait Until Keyword Succeeds 10x 3s All Messages Are Produced and Consumed ${group_id} [Teardown] Basic Teardown ${group_id} *** Keywords *** Starting Test Set Suite Variable ${REQUEST_TOPIC} subscription Set Suite Variable ${RESPONSE_TOPIC} subscription-response ${ncmpOutEventJson}= Get File ${DATADIR_SUBS_NOTIFICATION}${/}cmSubscriptionNcmpOutEventForCsit.json ${ncmpOutEventJson}= Evaluate json.loads("""${ncmpOutEventJson}""") json Set Suite Variable ${ncmpOutEventJsonGlobal} ${ncmpOutEventJson} ${thread}= Start Consumer Threaded topics=test Set Suite Variable ${MAIN_THREAD} ${thread} ${producer_group_id}= Create Producer Set Suite Variable ${PRODUCER_ID} ${producer_group_id} ${ncmpInEventJson}= Get File ${DATADIR_SUBS_NOTIFICATION}${/}cmSubscriptionNcmpInEventForCsit.json encoding=UTF-8 Set Suite Variable ${ncmpInEventJsonGlobal} ${ncmpInEventJson} ${headers}= Create Dictionary ce_specversion=1.0 ce_id=some-event-id ce_source=some-resource ce_type=subscriptionCreated ce_correlationid=test-cmhandle1 Set Suite Variable ${headersGlobal} ${headers} All Messages Are Produced and Consumed [Arguments] ${GROUP_ID} Produce group_id=${PRODUCER_ID} topic=${REQUEST_TOPIC} value=${ncmpInEventJsonGlobal} headers=${headersGlobal} Sleep 10sec ${result}= Poll group_id=${GROUP_ID} only_value=False ${headers} Set Variable ${result[0].headers()} ${value} Set Variable ${result[0].value()} ${valueAsDict}= Evaluate json.loads("""${value}""") json ${specVersionHeaderValue} Set Variable ${headers[1][1]} ${sourceHeaderValue} Set Variable ${headers[3][1]} ${typeHeaderValue} Set Variable ${headers[4][1]} ${correlationIdHeaderValue} Set Variable ${headers[6][1]} Dictionaries Should Be Equal ${valueAsDict} ${ncmpOutEventJsonGlobal} Should Be Equal As Strings ${specVersionHeaderValue} 1.0 Should Be Equal As Strings ${sourceHeaderValue} NCMP Should Be Equal As Strings ${typeHeaderValue} subscriptionCreatedStatus Should Be Equal As Strings ${correlationIdHeaderValue} SCO-9989752cm-subscription-001 Basic Teardown [Arguments] ${group_id} Unsubscribe ${group_id} Close Consumer ${group_id}