340577e2ceeef130437d8bfe63cd434ec0c17678
[cps.git] / csit / tests / cps-model-sync / cps-model-sync.robot
1 /*
2  *  ============LICENSE_START=======================================================
3  *  Copyright (C) 2021 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-DMI - Model Sync
23
24 Library               Collections
25 Library               OperatingSystem
26 Library               RequestsLibrary
27 Library               BuiltIn
28
29 Suite Setup           Create Session     DMI_URL    http://${DMI_HOST}:${DMI_PORT}
30
31 *** Variables ***
32
33 ${auth}            Basic Y3BzdXNlcjpjcHNyMGNrcyE=
34 ${basePath}        /dmi
35
36
37 *** Test Cases ***
38 Register node & sync models
39     ${uri}=              Set Variable       ${basePath}/v1/inventory/cmHandles
40     ${headers}=          Create Dictionary  Content-Type=application/json   Authorization=${auth}
41     ${jsonData}=         Get Binary File    ${DATADIR}${/}cmHandleRegistration.json
42     ${response}=         POST On Session    DMI_URL   ${uri}   headers=${headers}   data=${jsonData}
43     Should Be Equal As Strings              ${response.status_code}   201
44
45 Verify Sync
46     ${uri}=              Set Variable       ${basePath}/v1/ch/PNFDemo/modules
47     ${headers}=          Create Dictionary  Content-Type=application/json   Authorization=${auth}
48     ${jsonData}=         Get Binary File    ${DATADIR}${/}postModuleRequestBody.json
49     ${response}=         POST On Session    DMI_URL   ${uri}   headers=${headers}   data=${jsonData}
50     ${responseJson}=     Set Variable       ${response.json()}
51     ${moduleCount}=      Get length         ${responseJson['schemas']}
52     Should Be Equal As Strings              ${response.status_code}   200
53     FOR   ${item}   IN  @{responseJson['schemas']}
54         IF   "${item}.get('moduleName')" == "stores"
55             Should Be Equal As Strings              "${item}.get('revision')"   2020-09-15
56             Should Be Equal As Strings              "${item}.get('namespace')"   org:onap:ccsdk:sample
57         END
58     END