aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_sdnc_service.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_sdnc_service.py')
-rw-r--r--tests/test_sdnc_service.py188
1 files changed, 188 insertions, 0 deletions
diff --git a/tests/test_sdnc_service.py b/tests/test_sdnc_service.py
new file mode 100644
index 0000000..bc69797
--- /dev/null
+++ b/tests/test_sdnc_service.py
@@ -0,0 +1,188 @@
+"""Test SDNC service creation using GENERIC-RESOURCE-API."""
+# Copyright 2023 Deutsche Telekom AG
+#
+# 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 collections.abc import Iterable
+from unittest import mock
+
+from onapsdk.sdnc.services import Service
+
+SDNC_SERVICES_INFORMATION = {
+ "services": {
+ "service": [
+ {
+ "service-instance-id": "sdnc-int-test-fffffffffff",
+ "service-status": {
+ "response-code": "string",
+ "response-message": "string",
+ "final-indicator": "string",
+ "request-status": "string",
+ "action": "string",
+ "rpc-name": "string",
+ "rpc-action": "string",
+ "response-timestamp": "string"
+ },
+ "service-data": {
+ "service-level-oper-status": {
+ "last-rpc-action": "assign",
+ "last-action": "CreateServiceInstance",
+ "order-status": "Created"
+ }
+ }
+ }
+ ]
+ }
+}
+
+SDNC_SERVICES_INFORMATION_GET = {
+ "GENERIC-RESOURCE-API:service": [
+ {
+ "service-instance-id": "sdnc-int-test-fffffffffff",
+ "service-status": {
+ "response-code": "string",
+ "response-message": "string",
+ "final-indicator": "string",
+ "request-status": "string",
+ "action": "string",
+ "rpc-name": "string",
+ "rpc-action": "string",
+ "response-timestamp": "string"
+ },
+ "service-data": {
+ "service-level-oper-status": {
+ "last-rpc-action": "assign",
+ "last-action": "CreateServiceInstance",
+ "order-status": "Created"
+ }
+ }
+ }
+ ]
+}
+
+SDNC_SERVICES_INFORMATION_GET_ALL_SERVICE_DATA_MISSING = {
+ "services": {
+ "service": [
+ {
+ "service-instance-id": "sdnc-int-test-fffffffffff",
+ "service-status": {
+ "response-code": "string",
+ "response-message": "string",
+ "final-indicator": "string",
+ "request-status": "string",
+ "action": "string",
+ "rpc-name": "string",
+ "rpc-action": "string",
+ "response-timestamp": "string"
+ }
+ }
+ ]
+ }
+}
+
+SDNC_SERVICES_INFORMATION_GET_ALL_SERVICE_STATUS_MISSING = {
+ "services": {
+ "service": [
+ {
+ "service-instance-id": "sdnc-int-test-fffffffffff",
+ "service-data": {
+ "service-level-oper-status": {
+ "last-rpc-action": "assign",
+ "last-action": "CreateServiceInstance",
+ "order-status": "Created"
+ }
+ }
+ }
+ ]
+ }
+}
+
+SDNC_SERVICE_ID = "sdnc-int-test-fffffffffff"
+
+
+@mock.patch.object(Service, "send_message_json")
+def test_sdnc_service_gr_api_get_all(mock_send_message_json):
+ mock_send_message_json.return_value = SDNC_SERVICES_INFORMATION
+ sdnc_all_services = Service.get_all()
+ assert isinstance(sdnc_all_services, Iterable)
+ sdnc_all_services_list = list(sdnc_all_services)
+ assert len(sdnc_all_services_list) == 1
+ service = sdnc_all_services_list[0]
+ assert isinstance(service, Service)
+ assert service.service_instance_id == SDNC_SERVICE_ID
+
+
+@mock.patch.object(Service, "send_message")
+def test_sdnc_service_gr_api_create(mock_send_message):
+ service = Service(SDNC_SERVICES_INFORMATION["services"]["service"][0]["service-instance-id"],
+ SDNC_SERVICES_INFORMATION["services"]["service"][0]["service-status"])
+ service.create()
+
+ mock_send_message.assert_called_once()
+ method, description, url = mock_send_message.call_args[0]
+ assert method == "POST"
+ assert description == "Create a service using GENERIC-RESOURCES-API"
+ assert url == (f"{Service.base_url}/restconf/config/"
+ "GENERIC-RESOURCE-API:services")
+
+
+@mock.patch.object(Service, "send_message")
+def test_sdnc_service_gr_api_update(mock_send_message):
+ service = Service(service_instance_id=SDNC_SERVICES_INFORMATION["services"]["service"][0]["service-instance-id"],
+ service_status=SDNC_SERVICES_INFORMATION["services"]["service"][0]["service-status"],
+ service_data=SDNC_SERVICES_INFORMATION["services"]["service"][0]["service-data"])
+ service.update()
+ mock_send_message.assert_called_once()
+ method, description, url = mock_send_message.call_args[0]
+ assert method == "PUT"
+ assert description == "Update service information by service-instance-id using GENERIC-RESOURCES-API"
+ assert url == (f"{Service.base_url}/rests/data/"
+ f"GENERIC-RESOURCE-API:services/service={service.service_instance_id}")
+
+
+@mock.patch.object(Service, "send_message")
+def test_sdnc_service_gr_api_delete(mock_send_message):
+ service = Service(SDNC_SERVICES_INFORMATION["services"]["service"][0]["service-instance-id"],
+ SDNC_SERVICES_INFORMATION["services"]["service"][0]["service-status"])
+ service.delete()
+
+ mock_send_message.assert_called_once()
+ method, description, url = mock_send_message.call_args[0]
+ assert method == "DELETE"
+ assert description == "Delete a service using GENERIC-RESOURCE-API"
+ assert url == (f"{Service.base_url}/rests/data/"
+ "GENERIC-RESOURCE-API:services/"
+ f"service={SDNC_SERVICE_ID}")
+
+
+@mock.patch.object(Service, "send_message_json")
+def test_sdnc_service_gr_api_get_all_key_error_data(mock_send_message_json):
+ mock_send_message_json.return_value = SDNC_SERVICES_INFORMATION_GET_ALL_SERVICE_DATA_MISSING
+ sdnc_all_services = Service.get_all()
+ assert isinstance(sdnc_all_services, Iterable)
+ sdnc_all_services_list = list(sdnc_all_services)
+ assert len(sdnc_all_services_list) == 1
+ service = sdnc_all_services_list[0]
+ assert isinstance(service, Service)
+ assert service.service_data == {}
+
+
+@mock.patch.object(Service, "send_message_json")
+def test_sdnc_service_gr_api_get_all_key_error_status(mock_send_message_json):
+ mock_send_message_json.return_value = SDNC_SERVICES_INFORMATION_GET_ALL_SERVICE_STATUS_MISSING
+ sdnc_all_services = Service.get_all()
+ assert isinstance(sdnc_all_services, Iterable)
+ sdnc_all_services_list = list(sdnc_all_services)
+ assert len(sdnc_all_services_list) == 1
+ service = sdnc_all_services_list[0]
+ assert isinstance(service, Service)
+ assert service.service_status == {}