Merge "Condense Liquibase steps"
[cps.git] / csit / tests / cps-admin / cps-admin.robot
1 # ============LICENSE_START=======================================================
2 # Copyright (c) 2021 Pantheon.tech.
3 # ================================================================================
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #
16 # SPDX-License-Identifier: Apache-2.0
17 # ============LICENSE_END=========================================================
18
19 *** Settings ***
20 Documentation         CPS Core - Admin REST API
21
22 Library               Collections
23 Library               OperatingSystem
24 Library               RequestsLibrary
25
26 Suite Setup           Create Session      CPS_URL    http://${CPS_CORE_HOST}:${CPS_CORE_PORT}
27
28 *** Variables ***
29
30 ${auth}                 Basic Y3BzdXNlcjpjcHNyMGNrcyE=
31 ${basePath}             /cps/api
32 ${dataspaceName}        CSIT-Dataspace
33 ${schemaSetName}        CSIT-SchemaSet
34 ${anchorName}           CSIT-Anchor
35 ${ranDataspaceName}     NFP-Operational
36
37 *** Test Cases ***
38 Create Dataspace
39     ${uri}=             Set Variable        ${basePath}/v1/dataspaces
40     ${params}=          Create Dictionary   dataspace-name=${dataspaceName}
41     ${headers}=         Create Dictionary   Authorization=${auth}
42     ${response}=        POST On Session     CPS_URL   ${uri}   params=${params}   headers=${headers}
43     Should Be Equal As Strings              ${response.status_code}   201
44
45 Create Schema Set from YANG file
46     ${uri}=             Set Variable        ${basePath}/v1/dataspaces/${dataspaceName}/schema-sets
47     ${params}=          Create Dictionary   schema-set-name=${schemaSetName}
48     ${fileData}=        Get Binary File     ${DATADIR_CPS_CORE}${/}test-tree.yang
49     ${fileTuple}=       Create List         test.yang   ${fileData}   application/zip
50     &{files}=           Create Dictionary   file=${fileTuple}
51     ${headers}=         Create Dictionary   Authorization=${auth}
52     ${response}=        POST On Session     CPS_URL   ${uri}   files=${files}   params=${params}   headers=${headers}
53     Should Be Equal As Strings              ${response.status_code}   201
54
55 Create Schema Set from ZIP file
56     ${uri}=             Set Variable        ${basePath}/v1/dataspaces/${dataspaceName}/schema-sets
57     ${params}=          Create Dictionary   schema-set-name=ZipTestSchemaSet
58     ${fileData}=        Get Binary File     ${DATADIR_CPS_CORE}${/}yang-resources.zip
59     ${fileTuple}=       Create List         test.zip   ${fileData}   application/zip
60     &{files}=           Create Dictionary   file=${fileTuple}
61     ${headers}=         Create Dictionary   Authorization=${auth}
62     ${response}=        POST On Session     CPS_URL   ${uri}   files=${files}   params=${params}   headers=${headers}
63     Should Be Equal As Strings              ${response.status_code}   201
64
65 Get Schema Set info
66     ${uri}=             Set Variable        ${basePath}/v1/dataspaces/${dataspaceName}/schema-sets/${schemaSetName}
67     ${headers}=         Create Dictionary   Authorization=${auth}
68     ${response}=        Get On Session      CPS_URL   ${uri}   headers=${headers}   expected_status=200
69     ${responseJson}=    Set Variable        ${response.json()}
70     Should Be Equal As Strings              ${responseJson['name']}   ${schemaSetName}
71     Should Be Equal As Strings              ${responseJson['dataspaceName']}   ${dataspaceName}
72
73 Create Anchor
74     ${uri}=             Set Variable        ${basePath}/v1/dataspaces/${dataspaceName}/anchors
75     ${params}=          Create Dictionary   schema-set-name=${schemaSetName}   anchor-name=${anchorName}
76     ${headers}=         Create Dictionary   Authorization=${auth}
77     ${response}=        POST On Session     CPS_URL   ${uri}   params=${params}   headers=${headers}
78     Should Be Equal As Strings              ${response.status_code}   201