blob: a075788ff4d32a8c019caae99b594586653ba52a [file] [log] [blame]
lukegleesonfa389b52021-07-05 14:59:49 +01001# ============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
Ruslan Kashapovd44fcee2021-02-26 11:42:29 +020019*** Settings ***
20Documentation CPS Core - Admin REST API
21
22Library Collections
23Library OperatingSystem
24Library RequestsLibrary
25
tragaitdd6021e2021-10-19 16:46:21 +010026Suite Setup Create Session CPS_URL http://${CPS_CORE_HOST}:${CPS_CORE_PORT}
Ruslan Kashapovd44fcee2021-02-26 11:42:29 +020027
28*** Variables ***
29
Bruno Sakotof05a5032021-03-03 18:27:54 -050030${auth} Basic Y3BzdXNlcjpjcHNyMGNrcyE=
Ruslan Kashapovd44fcee2021-02-26 11:42:29 +020031${basePath} /cps/api
32${dataspaceName} CSIT-Dataspace
33${schemaSetName} CSIT-SchemaSet
34${anchorName} CSIT-Anchor
Bruno Sakotoddedbd12021-05-05 08:11:19 -040035${ranDataspaceName} NFP-Operational
36${ranSchemaSetName} cps-ran-schema-model
Ruslan Kashapovd44fcee2021-02-26 11:42:29 +020037
38*** Test Cases ***
39Create Dataspace
40 ${uri}= Set Variable ${basePath}/v1/dataspaces
41 ${params}= Create Dictionary dataspace-name=${dataspaceName}
Bruno Sakotof05a5032021-03-03 18:27:54 -050042 ${headers}= Create Dictionary Authorization=${auth}
puthuparambil.adityab46d1372021-07-09 12:51:10 +010043 ${response}= POST On Session CPS_URL ${uri} params=${params} headers=${headers}
Ruslan Kashapovd44fcee2021-02-26 11:42:29 +020044 Should Be Equal As Strings ${response.status_code} 201
45
46Create Schema Set from YANG file
47 ${uri}= Set Variable ${basePath}/v1/dataspaces/${dataspaceName}/schema-sets
48 ${params}= Create Dictionary schema-set-name=${schemaSetName}
49 ${fileData}= Get Binary File ${DATADIR}${/}test-tree.yang
50 ${fileTuple}= Create List test.yang ${fileData} application/zip
51 &{files}= Create Dictionary file=${fileTuple}
Bruno Sakotof05a5032021-03-03 18:27:54 -050052 ${headers}= Create Dictionary Authorization=${auth}
puthuparambil.adityab46d1372021-07-09 12:51:10 +010053 ${response}= POST On Session CPS_URL ${uri} files=${files} params=${params} headers=${headers}
Ruslan Kashapovd44fcee2021-02-26 11:42:29 +020054 Should Be Equal As Strings ${response.status_code} 201
55
56Create Schema Set from ZIP file
57 ${uri}= Set Variable ${basePath}/v1/dataspaces/${dataspaceName}/schema-sets
58 ${params}= Create Dictionary schema-set-name=ZipTestSchemaSet
59 ${fileData}= Get Binary File ${DATADIR}${/}yang-resources.zip
60 ${fileTuple}= Create List test.zip ${fileData} application/zip
61 &{files}= Create Dictionary file=${fileTuple}
Bruno Sakotof05a5032021-03-03 18:27:54 -050062 ${headers}= Create Dictionary Authorization=${auth}
puthuparambil.adityab46d1372021-07-09 12:51:10 +010063 ${response}= POST On Session CPS_URL ${uri} files=${files} params=${params} headers=${headers}
Ruslan Kashapovd44fcee2021-02-26 11:42:29 +020064 Should Be Equal As Strings ${response.status_code} 201
65
66Get Schema Set info
67 ${uri}= Set Variable ${basePath}/v1/dataspaces/${dataspaceName}/schema-sets/${schemaSetName}
Bruno Sakotof05a5032021-03-03 18:27:54 -050068 ${headers}= Create Dictionary Authorization=${auth}
puthuparambil.adityab46d1372021-07-09 12:51:10 +010069 ${response}= Get On Session CPS_URL ${uri} headers=${headers} expected_status=200
Ruslan Kashapovd44fcee2021-02-26 11:42:29 +020070 ${responseJson}= Set Variable ${response.json()}
71 Should Be Equal As Strings ${responseJson['name']} ${schemaSetName}
72 Should Be Equal As Strings ${responseJson['dataspaceName']} ${dataspaceName}
73
74Create Anchor
75 ${uri}= Set Variable ${basePath}/v1/dataspaces/${dataspaceName}/anchors
76 ${params}= Create Dictionary schema-set-name=${schemaSetName} anchor-name=${anchorName}
Bruno Sakotof05a5032021-03-03 18:27:54 -050077 ${headers}= Create Dictionary Authorization=${auth}
puthuparambil.adityab46d1372021-07-09 12:51:10 +010078 ${response}= POST On Session CPS_URL ${uri} params=${params} headers=${headers}
Bruno Sakotoddedbd12021-05-05 08:11:19 -040079 Should Be Equal As Strings ${response.status_code} 201
80
81Get CPS RAN Schema Set info
82 ${uri}= Set Variable ${basePath}/v1/dataspaces/${ranDataspaceName}/schema-sets/${ranSchemaSetName}
83 ${headers}= Create Dictionary Authorization=${auth}
puthuparambil.adityab46d1372021-07-09 12:51:10 +010084 ${response}= Get On Session CPS_URL ${uri} headers=${headers} expected_status=200
Bruno Sakotoddedbd12021-05-05 08:11:19 -040085 ${responseJson}= Set Variable ${response.json()}
86 Should Be Equal As Strings ${responseJson['name']} ${ranSchemaSetName}
87 Should Be Equal As Strings ${responseJson['dataspaceName']} ${ranDataspaceName}