Add stndDefined routing tests
[integration/csit.git] / tests / dcaegen2-collectors-hv-ves / testcases / message-routing.robot
1 # ============LICENSE_START=======================================================
2 # csit-dcaegen2-collectors-hv-ves
3 # ================================================================================
4 # Copyright (C) 2018-2021 NOKIA
5 # Modification copyright (C) 2021 Samsung Electronics Co., Ltd.
6 # ================================================================================
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #      http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 # ============LICENSE_END=========================================================
19
20 *** Settings ***
21 Library       DcaeAppSimulatorLibrary
22 Library       XnfSimulatorLibrary
23 Library       VesHvContainersUtilsLibrary
24 Library       Collections
25
26 Resource      resources/common-keywords.robot
27
28 Suite Setup       Message Routing Suite Setup
29 Suite Teardown    VES-HV Collector Suite Teardown
30 Test Teardown     VES-HV Collector Test Shutdown
31
32 *** Keywords ***
33 Message Routing Suite Setup
34     Log   Started Suite: VES-HV Message Routing
35     Configure Single xNF Simulator
36     Log   Suite setup finished
37
38 *** Test Cases ***
39 Correct Messages Routing
40     [Documentation]   VES-HV Collector should route all valid messages to topics specified in configuration
41     ...               without changing message payload generated in xNF simulator
42
43     Send Messages From xNF Simulators   ${XNF_SIMULATOR}   ${XNF_FIXED_PAYLOAD_REQUEST}
44
45     Wait until keyword succeeds   60 sec   5 sec
46     ...    Assert Dcae App Consumed   ${DEFAULT_PERF3GPP_TOPIC}   ${AMOUNT_25000}
47     Assert Dcae App Consumed Proper Messages   ${DEFAULT_PERF3GPP_TOPIC}   ${DCAE_FIXED_PAYLOAD_REQUEST}
48
49 Correct StndDefined Messages Routing
50     [Documentation]   VES-HV Collector should route all valid messages to stndDefined topics specified in configuration
51     ...               without changing message payload generated in xNF simulator
52
53     Send Messages From xNF Simulators   ${XNF_SIMULATOR}    ${XNF_STNDDEFINED_PAYLOAD_REQUEST}
54
55     Wait until keyword succeeds   60 sec   5 sec
56     ...    Assert Dcae App Consumed   ${DEFAULT_STNDDEFINED_3GPP_HEARTBEAT_TOPIC}   ${AMOUNT_25000}
57     Assert Dcae App Consumed Proper Messages   ${DEFAULT_STNDDEFINED_3GPP_HEARTBEAT_TOPIC}   ${DCAE_STNDDEFINED_PAYLOAD_REQUEST}
58
59 Too big payload message handling
60     [Documentation]   VES-HV Collector should interrupt the stream when a message with too big payload is encountered
61
62     Send Messages From xNF Simulators   ${XNF_SIMULATOR}   ${XNF_TOO_BIG_PAYLOAD_REQUEST}
63
64     Wait until keyword succeeds   60 sec   5 sec
65     ...    Assert Dcae App Consumed   ${DEFAULT_PERF3GPP_TOPIC}   ${AMOUNT_25000}
66     Assert Dcae App Consumed Proper Messages   ${DEFAULT_PERF3GPP_TOPIC}   ${DCAE_TOO_BIG_PAYLOAD_REQUEST}
67
68
69 Invalid wire frame message handling
70     [Documentation]  VES-HV Collector should skip messages with invalid wire frame
71
72     Send Messages From xNF Simulators   ${XNF_SIMULATOR}   ${XNF_INVALID_WIRE_FRAME_REQUEST}
73
74     Wait until keyword succeeds   60 sec   5 sec
75     ...    Assert Dcae App Consumed   ${DEFAULT_PERF3GPP_TOPIC}   ${AMOUNT_50000}
76     Assert Dcae App Consumed Proper Messages   ${DEFAULT_PERF3GPP_TOPIC}   ${DCAE_INVALID_WIRE_FRAME_REQUEST}
77
78
79 Invalid GPB data message handling
80     [Documentation]   VES-HV Collector should skip messages with invalid GPB data
81
82     Send Messages From xNF Simulators   ${XNF_SIMULATOR}   ${XNF_INVALID_GPB_DATA_REQUEST}
83
84     Wait until keyword succeeds   60 sec   5 sec
85     ...    Assert Dcae App Consumed   ${DEFAULT_PERF3GPP_TOPIC}  ${AMOUNT_50000}
86     Assert Dcae App Consumed Proper Messages   ${DEFAULT_PERF3GPP_TOPIC}   ${DCAE_INVALID_GPB_DATA_REQUEST}
87
88
89 Unsupported domain message handling
90     [Documentation]   VES-HV Collector should skip messages with unsupported domain
91
92     Send Messages From xNF Simulators   ${XNF_SIMULATOR}   ${XNF_UNSUPPORTED_DOMAIN_REQUEST}
93
94     Wait until keyword succeeds   60 sec   5 sec
95     ...    Assert Dcae App Consumed  ${DEFAULT_PERF3GPP_TOPIC}   ${AMOUNT_50000}
96     Assert Dcae App Consumed Proper Messages   ${DEFAULT_PERF3GPP_TOPIC}   ${DCAE_UNSUPPORTED_DOMAIN_REQUEST}
97
98 Unsupported stndDefinedNamespace message handling
99     [Documentation]   VES-HV Collector should skip messages with unsupported domain
100
101     Send Messages From xNF Simulators   ${XNF_SIMULATOR}   ${XNF_UNSUPPORTED_NAMESPACE_REQUEST}
102
103     Wait until keyword succeeds   60 sec   5 sec
104     ...    Assert Dcae App Consumed  ${DEFAULT_STNDDEFINED_3GPP_HEARTBEAT_TOPIC}   ${AMOUNT_50000}
105     Assert Dcae App Consumed Proper Messages   ${DEFAULT_STNDDEFINED_3GPP_HEARTBEAT_TOPIC}   ${DCAE_UNSUPPORTED_NAMESPACE_REQUEST}
106
107 *** Variables ***
108 ${HTTP_METHOD_URL}                             http://
109
110 ${XNF_SIM_API_PATH}                            /simulator/async
111
112 ${HV_VES_SCENARIOS}                            %{WORKSPACE}/tests/dcaegen2-collectors-hv-ves/testcases/resources/scenarios
113 ${XNF_FIXED_PAYLOAD_REQUEST}                   ${HV_VES_SCENARIOS}/fixed-payload/xnf-fixed-payload-request.json
114 ${XNF_STNDDEFINED_PAYLOAD_REQUEST}             ${HV_VES_SCENARIOS}/stnd-defined/valid/xnf-stnd-defined-payload-request.json
115 ${XNF_TOO_BIG_PAYLOAD_REQUEST}                 ${HV_VES_SCENARIOS}/too-big-payload/xnf-too-big-payload-request.json
116 ${XNF_INVALID_WIRE_FRAME_REQUEST}              ${HV_VES_SCENARIOS}/invalid-wire-frame/xnf-invalid-wire-frame-request.json
117 ${XNF_INVALID_GPB_DATA_REQUEST}                ${HV_VES_SCENARIOS}/invalid-gpb-data/xnf-invalid-gpb-data-request.json
118 ${XNF_UNSUPPORTED_DOMAIN_REQUEST}              ${HV_VES_SCENARIOS}/unsupported-domain/xnf-unsupported-domain-request.json
119 ${XNF_UNSUPPORTED_NAMESPACE_REQUEST}           ${HV_VES_SCENARIOS}/stnd-defined/unsupported-namespace/xnf-unsupported-namespace-request.json
120
121 ${DCAE_FIXED_PAYLOAD_REQUEST}                  ${HV_VES_SCENARIOS}/fixed-payload/dcae-fixed-payload-request.json
122 ${DCAE_STNDDEFINED_PAYLOAD_REQUEST}            ${HV_VES_SCENARIOS}/stnd-defined/valid/dcae-stnd-defined-payload-request.json
123 ${DCAE_TOO_BIG_PAYLOAD_REQUEST}                ${HV_VES_SCENARIOS}/too-big-payload/dcae-too-big-payload-request.json
124 ${DCAE_INVALID_WIRE_FRAME_REQUEST}             ${HV_VES_SCENARIOS}/invalid-wire-frame/dcae-invalid-wire-frame-request.json
125 ${DCAE_INVALID_GPB_DATA_REQUEST}               ${HV_VES_SCENARIOS}/invalid-gpb-data/dcae-invalid-gpb-data-request.json
126 ${DCAE_UNSUPPORTED_DOMAIN_REQUEST}             ${HV_VES_SCENARIOS}/unsupported-domain/dcae-unsupported-domain-request.json
127 ${DCAE_UNSUPPORTED_NAMESPACE_REQUEST}          ${HV_VES_SCENARIOS}/stnd-defined/unsupported-namespace/dcae-unsupported-namespace-request.json
128
129 ${AMOUNT_25000}                                25000
130 ${AMOUNT_50000}                                50000