blob: 2d5152a2900d399941c20e54588bddf6cb9596ff [file] [log] [blame]
# ============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
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" "subscriptionCreatedStatus"
Compare Header Values ${header_key_value_pair[0]} ${header_key_value_pair[1]} "ce_correlationid" "SCO-9989752cm-subscription-001"
END
Dictionaries Should Be Equal ${valueAsDict} ${ncmpOutEventJsonGlobal}
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}