Revert "Migrate CPS to Spring-boot 3.0"
[cps.git] / csit / tests / cps-data-operations / cps-data-operations.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         NCMP
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
34 ${auth}                                 Basic Y3BzdXNlcjpjcHNyMGNrcyE=
35 ${topic}                                data-operation-client-topic
36 ${ncmpBasePath}                         /ncmp
37 ${expectedRequestId}                    ${EMPTY}
38 ${dmipluginCsitStubUrl}                 http://${DMI_CSIT_STUB_HOST}:${DMI_CSIT_STUB_PORT}
39 ${newCmHandleRequestBody}               {"dmiPlugin":"${dmipluginCsitStubUrl}","createdCmHandles":[{"cmHandle":"850117873c9a4936856a5081be96e6a8"}]}
40
41 *** Test Cases ***
42
43 NCMP Data Operation, forwarded to DMI, response on Client Topic
44         ${uri}=                          Set Variable        ${ncmpBasePath}/v1/data
45         ${dataOperationReqBody}=         Get Binary File     ${DATADIR}${/}dataOperationRequest.json
46         ${params}=                       Create Dictionary   topic=${topic}
47         ${headers}=                      Create Dictionary   Content-Type=application/json         Authorization=${auth}
48                                          POST On Session     CPS_URL   ncmpInventory/v1/ch         headers=${headers}     data=${newCmHandleRequestBody}
49         Sleep                            5                   wait some time to get updated the cm handle state to READY
50         ${response}=                     POST On Session     CPS_URL   ${uri}   params=${params}   headers=${headers}     data=${dataOperationReqBody}
51         Set Global Variable              ${expectedRequestId}       ${response.json()}[requestId]
52         Should Be Equal As Strings       ${response.status_code}   200
53         Sleep                            5                         wait some time to get published a message to the client topic
54
55 Consume cloud event from client topic
56     ${group_id}=         Create Consumer     auto_offset_reset=earliest
57     Subscribe Topic      topics=${topic}     group_id=${group_id}
58     ${messages}=         Poll                group_id=${group_id}     only_value=false
59     ${event}                        Set Variable                      ${messages}[0]
60     ${headers}                      Set Variable                      ${event.headers()}
61     FOR   ${header_key_value_pair}   IN  @{headers}
62         Compare Header Values       ${header_key_value_pair[0]}   ${header_key_value_pair[1]}      "ce_specversion"      "1.0"
63         Compare Header Values       ${header_key_value_pair[0]}   ${header_key_value_pair[1]}      "ce_source"           "DMI"
64         Compare Header Values       ${header_key_value_pair[0]}   ${header_key_value_pair[1]}      "ce_type"             "org.onap.cps.ncmp.events.async1_0_0.DataOperationEvent"
65         Compare Header Values       ${header_key_value_pair[0]}   ${header_key_value_pair[1]}      "ce_correlationid"    "${expectedRequestId}"
66     END
67     [Teardown]                      Basic Teardown                    ${group_id}
68
69 *** Keywords ***
70 Compare Header Values
71     [Arguments]                    ${header_key}        ${header_value}     ${header_to_check}       ${expected_header_value}
72     IF   "${header_key}" == ${header_to_check}
73         Should Be Equal As Strings              "${header_value}"    ${expected_header_value}
74     END
75
76 Basic Teardown
77     [Arguments]     ${group_id}
78     Unsubscribe     ${group_id}
79     Close Consumer  ${group_id}
80