summaryrefslogtreecommitdiffstats
path: root/tests/test_service_instance_resource.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_service_instance_resource.py')
-rw-r--r--tests/test_service_instance_resource.py141
1 files changed, 141 insertions, 0 deletions
diff --git a/tests/test_service_instance_resource.py b/tests/test_service_instance_resource.py
new file mode 100644
index 0000000..69a9e57
--- /dev/null
+++ b/tests/test_service_instance_resource.py
@@ -0,0 +1,141 @@
+from unittest.mock import MagicMock, patch, PropertyMock
+
+from onap_data_provider.resources.service_instance_resource import (
+ ServiceInstanceResource
+)
+from onapsdk.exceptions import APIError
+
+RESOURCE_DATA_1_0 = {
+ "service_instance_name": "vFW-Macro-1",
+ "service_name": "service1",
+ "cloud_region": "test",
+ "customer_id": "*cust1",
+ "owning_entity": "test",
+ "project": "test",
+ "platform": "test",
+ "line_of_business": "test",
+ "cloud_region_id": "*cloudregionid1",
+ "cloud_owner": "*cloudowner1",
+ "tenant_id": "test",
+ "instantiation_parameters": [],
+}
+
+
+RESOURCE_DATA_1_1 = {
+ "service_instance_name": "vFW-Macro-1",
+ "service_name": "service1",
+ "cloud_region": "test",
+ "customer_id": "*cust1",
+ "owning_entity": "test",
+ "project": "test",
+ "platform": "test",
+ "line_of_business": "test",
+ "cloud_region_id": "*cloudregionid1",
+ "cloud_owner": "*cloudowner1",
+ "tenant_id": "test",
+ "instantiation_parameters": [],
+ "aai_service": "test"
+}
+
+
+INSTANTIATION_PARAMETERS_DATA = {
+ "service_name": "service1",
+ "instantiation_parameters": [
+ {
+ "vnf_name": "test",
+ "parameters": {"a": "b", "c": "d"},
+ "vf_modules": [
+ {
+ "name": "base_ubuntu20",
+ "parameters": {
+ "ubuntu20_image_name": "Ubuntu_2004",
+ "ubuntu20_key_name": "cleouverte",
+ "ubuntu20_pub_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY15cdBmIs2XOpe4EiFCsaY6bmUmK/GysMoLl4UG51JCfJwvwoWCoA+6mDIbymZxhxq9IGxilp/yTA6WQ9s/5pBag1cUMJmFuda9PjOkXl04jgqh5tR6I+GZ97AvCg93KAECis5ubSqw1xOCj4utfEUtPoF1OuzqM/lE5mY4N6VKXn+fT7pCD6cifBEs6JHhVNvs5OLLp/tO8Pa3kKYQOdyS0xc3rh+t2lrzvKUSWGZbX+dLiFiEpjsUL3tDqzkEMNUn4pdv69OJuzWHCxRWPfdrY9Wg0j3mJesP29EBht+w+EC9/kBKq+1VKdmsXUXAcjEvjovVL8l1BrX3BY0R8D imported-openssh-key",
+ "ubuntu20_flavor_name": "m1.smaller",
+ "VM_name": "ubuntu20agent-VM-01",
+ "vnf_id": "ubuntu20agent-VNF-instance",
+ "vf_module_id": "ubuntu20agent-vfmodule-instance",
+ "vnf_name": "ubuntu20agent-VNF",
+ "admin_plane_net_name": "admin",
+ "ubuntu20_name_0": "ubuntu20agent-VNF",
+ },
+ }
+ ],
+ }
+ ]
+}
+
+
+@patch(
+ "onap_data_provider.resources.service_instance_resource.ServiceInstanceResource.service_instance",
+ new_callable=PropertyMock,
+)
+def test_si_resource_exists(mock_si):
+ mock_si.return_value = None
+ si_resource = ServiceInstanceResource(RESOURCE_DATA_1_1)
+ assert si_resource.exists is False
+ mock_si.return_value = 1 # Anything but not None
+ assert si_resource.exists is True
+
+
+@patch(
+ "onap_data_provider.resources.service_instance_resource.ServiceInstanceResource.exists",
+ new_callable=PropertyMock,
+)
+@patch("onap_data_provider.resources.service_instance_resource.Customer")
+@patch("onap_data_provider.resources.service_instance_resource.Project")
+@patch("onap_data_provider.resources.service_instance_resource.OwningEntity")
+@patch("onap_data_provider.resources.service_instance_resource.CloudRegion")
+@patch("onap_data_provider.resources.service_instance_resource.ServiceInstantiation")
+@patch("onap_data_provider.resources.service_instance_resource.Service")
+@patch("onap_data_provider.resources.service_instance_resource.AaiService")
+def test_si_resource_create(
+ mock_aai_service,
+ mock_service,
+ mock_service_instantionation,
+ mock_cr,
+ mock_oe,
+ mock_project,
+ mock_customer,
+ mock_si_resource_exists,
+):
+ si_resource = ServiceInstanceResource(RESOURCE_DATA_1_1)
+ mock_oe.get_by_owning_entity_name.side_effect = APIError
+ mock_si_resource_exists.return_value = True
+ si_resource.create()
+ mock_service.assert_not_called()
+
+ mock_si_resource_exists.return_value = False
+ si_resource.create()
+ mock_oe.create.assert_called_once()
+ mock_oe.get_by_owning_entity_name.assert_called_once()
+ mock_aai_service.get_all.called_once_with(service_id="test")
+ mock_service_instantionation.instantiate_macro.assert_called_once()
+
+
+def test_so_service():
+ si_resource = ServiceInstanceResource(INSTANTIATION_PARAMETERS_DATA)
+ so_service = si_resource.so_service
+ assert so_service.subscription_service_type == "service1"
+ assert len(so_service.vnfs) == 1
+ vnf = so_service.vnfs[0]
+ assert vnf["model_name"] == "test"
+ assert vnf["vnf_name"] == "test"
+ assert len(vnf["parameters"]) == 2
+ assert len(vnf["vf_modules"]) == 1
+ vf_module = vnf["vf_modules"][0]
+ assert vf_module["model_name"] == "base_ubuntu20"
+ assert vf_module["vf_module_name"] == "base_ubuntu20"
+ assert len(vf_module["parameters"]) == 10
+
+
+@patch("onap_data_provider.resources.service_instance_resource.AaiService.get_all")
+def test_service_instance_resource_version_1_0_and_1_1(mock_aai_service_get_all):
+ si_resource_1_0 = ServiceInstanceResource(RESOURCE_DATA_1_0)
+ assert si_resource_1_0.aai_service is None
+ mock_aai_service_get_all.assert_not_called()
+
+ mock_aai_service_get_all.return_value = iter([MagicMock()])
+ si_resource_1_0 = ServiceInstanceResource(RESOURCE_DATA_1_1)
+ assert si_resource_1_0.aai_service is not None
+ mock_aai_service_get_all.assert_called_once()