From a55afc5dedbdd5863b67884c8657a84d0480a660 Mon Sep 17 00:00:00 2001
From: Sudarshan Kumar <sudars19@in.ibm.com>
Date: Wed, 10 Apr 2019 00:17:37 +0530
Subject: Pyunit Coverage for solver-resource

Pyunit Coverage for solver-resource

Issue-ID: OPTFRA-302
Change-Id: Ic18a37e59bcef67cca9de733d4a62a3016220a0d
Signed-off-by: Sudarshan Kumar <sudars19@in.ibm.com>
---
 .../tests/unit/solver/optimizer/test_greedy.py     | 46 ++++++++++++++++
 .../tests/unit/solver/resource/__init__.py         |  0
 .../tests/unit/solver/resource/test_region.py      | 64 ++++++++++++++++++++++
 .../tests/unit/solver/resource/test_service.py     | 49 +++++++++++++++++
 4 files changed, 159 insertions(+)
 create mode 100644 conductor/conductor/tests/unit/solver/optimizer/test_greedy.py
 create mode 100644 conductor/conductor/tests/unit/solver/resource/__init__.py
 create mode 100644 conductor/conductor/tests/unit/solver/resource/test_region.py
 create mode 100644 conductor/conductor/tests/unit/solver/resource/test_service.py

diff --git a/conductor/conductor/tests/unit/solver/optimizer/test_greedy.py b/conductor/conductor/tests/unit/solver/optimizer/test_greedy.py
new file mode 100644
index 0000000..1e087fa
--- /dev/null
+++ b/conductor/conductor/tests/unit/solver/optimizer/test_greedy.py
@@ -0,0 +1,46 @@
+#
+# -------------------------------------------------------------------------
+#   Copyright (C) 2019 IBM.
+#
+#   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.
+#
+# -------------------------------------------------------------------------
+#
+
+"""Test class for optimizer greedy.py"""
+
+import unittest
+from conductor.common.music import api
+from conductor.solver.optimizer.greedy import Greedy
+from oslo_config import cfg
+from mock import patch
+
+
+class TestGreedy(unittest.TestCase):
+
+    @patch('conductor.solver.optimizer')
+    @patch('conductor.common.music.model.base.Base.table_create')
+    @patch('conductor.common.music.model.base.Base.insert')
+    def setUp(self, conf, _requests=None, _begin_time=None):
+        self.music = api.API()
+        self.conf = cfg.CONF
+        self.greedy = Greedy(self.conf)
+        self._objective = None
+
+    def test_search(self):
+        _demand_list = list()
+        self.assertEqual(None, self.greedy.search(_demand_list, self._objective).current_demand)
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/conductor/conductor/tests/unit/solver/resource/__init__.py b/conductor/conductor/tests/unit/solver/resource/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/conductor/conductor/tests/unit/solver/resource/test_region.py b/conductor/conductor/tests/unit/solver/resource/test_region.py
new file mode 100644
index 0000000..f5b5370
--- /dev/null
+++ b/conductor/conductor/tests/unit/solver/resource/test_region.py
@@ -0,0 +1,64 @@
+#
+# -------------------------------------------------------------------------
+#   Copyright (C) 2019 IBM.
+#
+#   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.
+#
+# -------------------------------------------------------------------------
+#
+
+"""Test class for resources region.py"""
+
+import unittest
+from conductor.solver.resource.region import Region
+from conductor.solver.resource.region import Zone
+from conductor.solver.resource.region import Link
+
+class TestResourceRegion(unittest.TestCase):
+
+    def setUp(self):
+        self._rid = None
+        self.address = {}
+        self.zones = {}
+        self.capacity = {}
+        self.allocated_demand_list = []
+        self.properties = {}
+        self.neighbor_list = []
+        self._zid = None
+        self._region_name = ''
+
+        self.resource_region = Region(self._rid)
+        self._zone = Zone(self._zid)
+        self._link = Link(self._region_name)
+
+    def test_resource_region(self):
+
+        self.assertEqual('active', self.resource_region.status)
+        self.assertEqual(None, self.resource_region.region_type)
+        self.assertEqual(None, self.resource_region.location)
+        self.assertEqual(self.address, self.resource_region.address)
+        self.assertEqual(self.zones, self.resource_region.zones)
+        self.assertEqual(0.0, self.resource_region.cost)
+        self.assertEqual(None, self.resource_region.update_capacity())
+        self.assertEqual(self.allocated_demand_list, self.resource_region.allocated_demand_list)
+        self.assertEqual(self.properties, self.resource_region.properties)
+        self.assertEqual(self.neighbor_list, self.resource_region.neighbor_list)
+        self.assertEqual(0, self.resource_region.last_update)
+        self.assertEqual(None, self.resource_region.update_capacity())
+        self.assertEqual(None, self.resource_region.get_json_summary())
+        self.assertEqual(None, self._zone.get_json_summary())
+        self.assertEqual(None, self._link.get_json_summary())
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/conductor/conductor/tests/unit/solver/resource/test_service.py b/conductor/conductor/tests/unit/solver/resource/test_service.py
new file mode 100644
index 0000000..b8cb65e
--- /dev/null
+++ b/conductor/conductor/tests/unit/solver/resource/test_service.py
@@ -0,0 +1,49 @@
+#
+# -------------------------------------------------------------------------
+#   Copyright (C) 2019 IBM.
+#
+#   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.
+#
+# -------------------------------------------------------------------------
+#
+
+"""Test class for resources service.py"""
+
+import unittest
+from conductor.solver.resource.service import Service
+
+
+class TestService(unittest.TestCase):
+
+    def setUp(self):
+        self._sid = None
+        self.capacity = {}
+        self.allocated_demand_list = []
+        self.properties = {}
+        self.resource_service = Service(self._sid)
+
+    def test_resource_service(self):
+        self.assertEqual(None, self.resource_service.name)
+        self.assertEqual(None, self.resource_service.region)
+        self.assertEqual('active', self.resource_service.status)
+        self.assertEqual(0.0, self.resource_service.cost)
+        self.assertEqual(self.capacity, self.resource_service.capacity)
+        self.assertEqual(self.allocated_demand_list, self.resource_service.allocated_demand_list)
+        self.assertEqual(self.properties, self.resource_service.properties)
+        self.assertEqual(0, self.resource_service.last_update)
+        self.assertEqual(None, self.resource_service.update_capacity())
+        self.assertEqual(None, self.resource_service.get_json_summary())
+
+
+if __name__ == '__main__':
+    unittest.main()
-- 
cgit