diff options
author | 2020-02-24 14:13:03 +0000 | |
---|---|---|
committer | 2020-02-26 15:25:50 +0000 | |
commit | e7f6914ca5397987eddc6788a6e378c51b12ce52 (patch) | |
tree | 1c4a1015afa1030ee3e75fdf78c282a2ce994433 /components/pm-subscription-handler/tests/test_aai_event_handler.py | |
parent | de549f5f1bb3e0a6f94e9755ae0800b469114113 (diff) |
Handle AAI Update and Delete events for PMSH
Change-Id: I7f84e4429011bbaea4de23077ce23629b897fd7d
Issue-ID: DCAEGEN2-1846
Signed-off-by: emartin <ephraim.martin@est.tech>
Diffstat (limited to 'components/pm-subscription-handler/tests/test_aai_event_handler.py')
-rwxr-xr-x | components/pm-subscription-handler/tests/test_aai_event_handler.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/components/pm-subscription-handler/tests/test_aai_event_handler.py b/components/pm-subscription-handler/tests/test_aai_event_handler.py new file mode 100755 index 00000000..add7b3f5 --- /dev/null +++ b/components/pm-subscription-handler/tests/test_aai_event_handler.py @@ -0,0 +1,53 @@ +# ============LICENSE_START=================================================== +# Copyright (C) 2020 Nordix Foundation. +# ============================================================================ +# 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END===================================================== +import json +from os import path +from unittest import TestCase +from unittest.mock import patch, Mock + +from mod.aai_event_handler import OrchestrationStatus, process_aai_events +from mod.network_function import NetworkFunction + + +class AAIEventHandlerTest(TestCase): + + def setUp(self): + with open(path.join(path.dirname(__file__), 'data/cbs_data_1.json'), 'r') as data: + self.cbs_data_1 = json.load(data) + with open(path.join(path.dirname(__file__), 'data/mr_aai_events.json'), 'r') as data: + self.mr_aai_events = json.load(data)["mr_response"] + self.mock_sub = Mock(nfFilter={'swVersions': ['1.0.0', '1.0.1'], + 'nfNames': ['^pnf.*', '^vnf.*']}) + self.mock_mr_sub = Mock(get_from_topic=Mock(return_value=self.mr_aai_events)) + self.mock_mr_pub = Mock() + self.mock_app = Mock() + + @patch('mod.aai_event_handler.NetworkFunction.delete') + @patch('mod.aai_event_handler.NetworkFunction.get') + def test_process_aai_update_and_delete_events(self, mock_nf_get, mock_nf_delete): + pnf_already_active = NetworkFunction(nf_name='pnf_already_active', + orchestration_status=OrchestrationStatus.ACTIVE.value) + mock_nf_get.side_effect = [None, pnf_already_active] + expected_nf_for_processing = NetworkFunction( + nf_name='pnf_newly_discovered', orchestration_status=OrchestrationStatus.ACTIVE.value) + + process_aai_events(self.mock_mr_sub, self.mock_sub, self.mock_mr_pub, self.mock_app) + + self.mock_sub.process_subscription.assert_called_once_with([expected_nf_for_processing], + self.mock_mr_pub) + mock_nf_delete.assert_called_once_with(nf_name='pnf_to_be_deleted') |