aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_aai_service_subscription.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_aai_service_subscription.py')
-rw-r--r--tests/test_aai_service_subscription.py191
1 files changed, 191 insertions, 0 deletions
diff --git a/tests/test_aai_service_subscription.py b/tests/test_aai_service_subscription.py
new file mode 100644
index 0000000..3c7eb91
--- /dev/null
+++ b/tests/test_aai_service_subscription.py
@@ -0,0 +1,191 @@
+# Copyright 2022 Orange, 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 unittest import mock
+
+from onapsdk.aai.business import Customer, ServiceSubscription, ServiceInstance
+from onapsdk.aai.cloud_infrastructure import CloudRegion
+
+
+SERVICE_INSTANCES = {
+ "service-instance":[
+ {
+ "service-instance-id":"5410bf79-2aa3-450e-a324-ec5630dc18cf",
+ "service-instance-name":"test",
+ "environment-context":"General_Revenue-Bearing",
+ "workload-context":"Production",
+ "model-invariant-id":"2a51a89b-6f94-4417-8831-c468fb30ed02",
+ "model-version-id":"92a82807-b483-4579-86b1-c79b1286aab4",
+ "resource-version":"1589457727708",
+ "orchestration-status":"Active",
+ "relationship-list":{
+ "relationship":[
+ {
+ "related-to":"owning-entity",
+ "relationship-label":"org.onap.relationships.inventory.BelongsTo",
+ "related-link":"/aai/v16/business/owning-entities/owning-entity/ff6c945f-89ab-4f14-bafd-0cdd6eac791a",
+ "relationship-data":[
+ {
+ "relationship-key":"owning-entity.owning-entity-id",
+ "relationship-value":"ff6c945f-89ab-4f14-bafd-0cdd6eac791a"
+ }
+ ]
+ },
+ {
+ "related-to":"project",
+ "relationship-label":"org.onap.relationships.inventory.Uses",
+ "related-link":"/aai/v16/business/projects/project/python_onap_sdk_project",
+ "relationship-data":[
+ {
+ "relationship-key":"project.project-name",
+ "relationship-value":"python_onap_sdk_project"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+}
+
+
+MULTIPLE_CLOUD_REGIONS_AND_TENATS_RELATIONSHIP = {
+ "relationship":[
+ {
+ "related-to":"tenant",
+ "relationship-label":"org.onap.relationships.inventory.Uses",
+ "related-link":"/aai/v19/cloud-infrastructure/cloud-regions/cloud-region/DT/RegionOne/tenants/tenant/8fa33ca96caa4172aeeeefd1dbf5c715",
+ "relationship-data":[
+ {
+ "relationship-key":"cloud-region.cloud-owner",
+ "relationship-value":"DT"
+ },
+ {
+ "relationship-key":"cloud-region.cloud-region-id",
+ "relationship-value":"RegionOne"
+ },
+ {
+ "relationship-key":"tenant.tenant-id",
+ "relationship-value":"8fa33ca96caa4172aeeeefd1dbf5c715"
+ }
+ ],
+ "related-to-property":[
+ {
+ "property-key":"tenant.tenant-name",
+ "property-value":"ci-onap-master-vnfs"
+ }
+ ]
+ },
+ {
+ "related-to":"tenant",
+ "relationship-label":"org.onap.relationships.inventory.Uses",
+ "related-link":"/aai/v19/cloud-infrastructure/cloud-regions/cloud-region/test_cloud_owner/test_cloud_region_id/tenants/tenant/1234",
+ "relationship-data":[
+ {
+ "relationship-key":"cloud-region.cloud-owner",
+ "relationship-value":"test_cloud_owner"
+ },
+ {
+ "relationship-key":"cloud-region.cloud-region-id",
+ "relationship-value":"test_cloud_region_id"
+ },
+ {
+ "relationship-key":"tenant.tenant-id",
+ "relationship-value":"1234"
+ }
+ ],
+ "related-to-property":[
+ {
+ "property-key":"tenant.tenant-name",
+ "property-value":"test_tenant"
+ }
+ ]
+ }
+ ]
+}
+
+
+COUNT = {
+ "results":[
+ {
+ "service-subscription":1
+ }
+ ]
+}
+
+
+@mock.patch.object(ServiceSubscription, "send_message_json")
+def test_get_service_instance_by_filter_parameter(mock_send_message_json):
+ """Test Service Subscription get_service_instance_by_filter_parameter method"""
+ customer = Customer("generic", "generic", "INFRA")
+ service_subscription = ServiceSubscription(customer=customer,
+ service_type="test_service_type",
+ resource_version="test_resource_version")
+ mock_send_message_json.return_value = SERVICE_INSTANCES
+ service_instance = service_subscription._get_service_instance_by_filter_parameter(filter_parameter_name="service-instance-id", filter_parameter_value="5410bf79-2aa3-450e-a324-ec5630dc18cf")
+ assert service_instance.instance_name == "test"
+ assert service_instance.instance_id == "5410bf79-2aa3-450e-a324-ec5630dc18cf"
+
+
+@mock.patch.object(ServiceSubscription, "_get_service_instance_by_filter_parameter")
+def test_get_service_instance_by_id(mock_get):
+ """Test Service Subscription get_service_instance_by_id method"""
+ service_subscription = ServiceSubscription(customer=None,
+ service_type="test_service_type",
+ resource_version="test_resource_version")
+ mock_get.return_value = ServiceInstance(service_subscription="ServiceSubscription",
+ instance_id="5410bf79-2aa3-450e-a324-ec5630dc18cf")
+ service_instance = service_subscription.get_service_instance_by_id(service_instance_id="5410bf79-2aa3-450e-a324-ec5630dc18cf")
+ assert service_instance.instance_id == "5410bf79-2aa3-450e-a324-ec5630dc18cf"
+
+
+@mock.patch.object(ServiceSubscription, "_get_service_instance_by_filter_parameter")
+def test_get_service_instance_by_name(mock_get):
+ """Test Service Subscription get_service_instance_by_name method"""
+ service_subscription = ServiceSubscription(customer=None,
+ service_type="test_service_type",
+ resource_version="test_resource_version")
+ mock_get.return_value = ServiceInstance(service_subscription="ServiceSubscription",
+ instance_id="5410bf79-2aa3-450e-a324-ec5630dc18cf",
+ instance_name="test")
+ service_instance = service_subscription.get_service_instance_by_name(service_instance_name="test")
+ assert service_instance.instance_name == "test"
+
+
+@mock.patch.object(ServiceSubscription, "send_message_json")
+@mock.patch.object(CloudRegion, "get_by_id")
+def test_cloud_regions(mock_cloud_region_get_by_id, mock_send_message_json):
+ """Test service subscription `cloud_regions` property"""
+ service_subscription = ServiceSubscription(customer=mock.MagicMock(),
+ service_type="test_service_type",
+ resource_version="test_resource_version")
+ mock_send_message_json.return_value = MULTIPLE_CLOUD_REGIONS_AND_TENATS_RELATIONSHIP
+ assert len(list(service_subscription.cloud_regions)) == 2
+ assert len(mock_cloud_region_get_by_id.mock_calls) == 2
+
+
+@mock.patch.object(ServiceSubscription, "send_message_json")
+@mock.patch.object(CloudRegion, "get_by_id")
+@mock.patch.object(CloudRegion, "get_tenant")
+def test_tenants(mock_cloud_region_get_tenant, mock_cloud_region_get_by_id, mock_send_message_json):
+ """Test service subscription `tenants` property"""
+ service_subscription = ServiceSubscription(customer=mock.MagicMock(),
+ service_type="test_service_type",
+ resource_version="test_resource_version")
+ mock_send_message_json.return_value = MULTIPLE_CLOUD_REGIONS_AND_TENATS_RELATIONSHIP
+ assert len(list(service_subscription.tenants)) == 2
+
+@mock.patch.object(ServiceSubscription, "send_message_json")
+def test_service_subscription_count(mock_send_message_json):
+ mock_send_message_json.return_value = COUNT
+ assert ServiceSubscription.count(customer=mock.MagicMock()) == 1