--- /dev/null
+################################################################################
+# Copyright (c) 2020 AT&T Intellectual Property. #
+# #
+# Licensed under the Apache License, Version 2.0 (the "License"); #
+# you may not use this file except in compliance with the License. #
+# You may obtain a copy of the License at #
+# #
+# http://www.apache.org/licenses/LICENSE-2.0 #
+# #
+# Unless required by applicable law or agreed to in writing, software #
+# distributed under the License is distributed on an "AS IS" BASIS, #
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
+# See the License for the specific language governing permissions and #
+# limitations under the License. #
+################################################################################
+
+from http import HTTPStatus
+from tests.constants import mock_json_body, mock_json_body_url_without_controls, mock_json_body_url, mock_json_body_without_controls, helm_repo_index_response
+
+
+def test_health(client):
+ response = client.get('/api/v1/health')
+ assert response.status_code == HTTPStatus.OK, 'Wrong status code'
+ assert response.json == {'status': 'OK'}, 'Improper response'
+
+def test_get_charts(client):
+ response = client.get('/api/v1/charts')
+ assert response.status_code == HTTPStatus.OK, 'Wrong status code'
+ assert response.content_type == 'application/json', 'Content type error'
+ assert sorted([repr(x) for x in response.json]) == sorted([repr(x) for x in helm_repo_index_response['entries']])
+
+def test_get_test_xapp_charts(client):
+ response = client.get('/api/v1/charts/xapp/test_xapp')
+ assert response.status_code == HTTPStatus.OK, 'Wrong status code'
+ assert response.content_type == 'application/json', 'Content type error'
+ assert sorted([repr(x) for x in response.json]) == sorted([repr(x) for x in helm_repo_index_response['entries']['test_xapp']])
+
+def test_get_test_xapp_charts_package(client):
+ response = client.get('/api/v1/charts/xapp/test_xapp/ver/1.0.0')
+ assert response.status_code == HTTPStatus.OK, 'Wrong status code'
+ assert response.content_type == 'application/gzip', 'Content type error'
+
+def test_get_test_xapp_charts_values_yaml(client):
+ response = client.get('/api/v1/charts/xapp/test_xapp/ver/1.0.0/values.yaml')
+ assert response.status_code == HTTPStatus.OK, 'Wrong status code'
+ assert response.content_type == 'text/x-yaml', 'Content type error'
+
+def test_onboard_post(client):
+ url = '/api/v1/onboard'
+ response = client.post(url, json=mock_json_body)
+ assert response.status_code == HTTPStatus.CREATED, 'Wrong status code'
+ assert response.content_type == 'application/json', 'Content type error'
+ assert response.json == {'status': 'Created'}, 'Onboard failed'
+
+def test_onboard_without_controls_post(client):
+ url = '/api/v1/onboard'
+ response = client.post(url, json=mock_json_body_without_controls)
+ assert response.status_code == HTTPStatus.BAD_REQUEST, 'Wrong status code'
+ assert response.content_type == 'application/json', 'Content type error'
+ assert response.json == {'error_message': "'__empty_control_section__' is a required property",
+ 'error_source': 'config-file.json',
+ 'status': 'Input payload validation failed'}, 'Onboard failed'
+
+
+def test_onboard_download_post(client):
+ url = '/api/v1/onboard/download'
+ response = client.post(url, json=mock_json_body_url)
+ assert response.status_code == HTTPStatus.CREATED, 'Wrong status code'
+ assert response.content_type == 'application/json', 'Content type error'
+ assert response.json == {'status': 'Created'}, 'Onboard failed'
+
+
+def test_onboard_download_without_controls_post(client):
+ url = '/api/v1/onboard/download'
+ response = client.post(url, json=mock_json_body_url_without_controls)
+ assert response.status_code == HTTPStatus.BAD_REQUEST, 'Wrong status code'
+ assert response.content_type == 'application/json', 'Content type error'
+ assert response.json == {'error_message': "'__empty_control_section__' is a required property",
+ 'error_source': 'config-file.json',
+ 'status': 'Input payload validation failed'}, 'Onboard failed'