diff --git a/rsd_lib/tests/unit/json_samples/v2_2/processor_collection.json b/rsd_lib/tests/unit/json_samples/v2_2/processor_collection.json index 81c7f14..d25c314 100644 --- a/rsd_lib/tests/unit/json_samples/v2_2/processor_collection.json +++ b/rsd_lib/tests/unit/json_samples/v2_2/processor_collection.json @@ -3,10 +3,13 @@ "@odata.id": "/redfish/v1/Systems/System1/Processors", "@odata.type": "#ProcessorCollection.ProcessorCollection", "Name": "Processors Collection", - "Members@odata.count": 1, + "Members@odata.count": 2, "Members": [ { "@odata.id": "/redfish/v1/Systems/System1/Processors/CPU1" + }, + { + "@odata.id": "/redfish/v1/Systems/System1/Processors/CPU2" } ] } \ No newline at end of file diff --git a/rsd_lib/tests/unit/json_samples/v2_2/system_collection.json b/rsd_lib/tests/unit/json_samples/v2_2/system_collection.json new file mode 100644 index 0000000..9553825 --- /dev/null +++ b/rsd_lib/tests/unit/json_samples/v2_2/system_collection.json @@ -0,0 +1,16 @@ +{ + "@odata.context": "/redfish/v1/$metadata#ComputerSystemCollection.ComputerSystemCollection", + "@odata.id": "/redfish/v1/Systems", + "@odata.type": "#ComputerSystemCollection.ComputerSystemCollection", + "Name": "Computer System Collection", + "Description": "description-as-string", + "Members@odata.count": 2, + "Members": [ + { + "@odata.id": "/redfish/v1/Systems/System1" + }, + { + "@odata.id": "/redfish/v1/Systems/System2" + } + ] +} \ No newline at end of file diff --git a/rsd_lib/tests/unit/resources/v2_2/system/test_processor.py b/rsd_lib/tests/unit/resources/v2_2/system/test_processor.py index 9e3b9ef..8db8a29 100644 --- a/rsd_lib/tests/unit/resources/v2_2/system/test_processor.py +++ b/rsd_lib/tests/unit/resources/v2_2/system/test_processor.py @@ -114,3 +114,47 @@ class ProcessorTestCase(testtools.TestCase): # | WHEN & THEN | self.assertIsInstance(self.processor_inst.metrics, processor_metrics.ProcessorMetrics) + + +class ProcessorCollectionTestCase(testtools.TestCase): + + def setUp(self): + super(ProcessorCollectionTestCase, self).setUp() + self.conn = mock.Mock() + with open('rsd_lib/tests/unit/json_samples/v2_2/' + 'processor_collection.json', 'r') as f: + self.conn.get.return_value.json.return_value = json.loads(f.read()) + self.processor_col = processor.ProcessorCollection( + self.conn, '/redfish/v1/Systems', + redfish_version='1.1.0') + + def test__parse_attributes(self): + self.processor_col._parse_attributes() + self.assertEqual('1.1.0', self.processor_col.redfish_version) + self.assertEqual(('/redfish/v1/Systems/System1/Processors/CPU1', + '/redfish/v1/Systems/System1/Processors/CPU2'), + self.processor_col.members_identities) + + @mock.patch.object(processor, 'Processor', autospec=True) + def test_get_member(self, mock_system): + self.processor_col.get_member( + '/redfish/v1/Systems/System1/Processors/CPU1') + mock_system.assert_called_once_with( + self.processor_col._conn, + '/redfish/v1/Systems/System1/Processors/CPU1', + redfish_version=self.processor_col.redfish_version) + + @mock.patch.object(processor, 'Processor', autospec=True) + def test_get_members(self, mock_system): + members = self.processor_col.get_members() + calls = [ + mock.call(self.processor_col._conn, + '/redfish/v1/Systems/System1/Processors/CPU1', + redfish_version=self.processor_col.redfish_version), + mock.call(self.processor_col._conn, + '/redfish/v1/Systems/System1/Processors/CPU2', + redfish_version=self.processor_col.redfish_version) + ] + mock_system.assert_has_calls(calls) + self.assertIsInstance(members, list) + self.assertEqual(2, len(members)) diff --git a/rsd_lib/tests/unit/resources/v2_2/system/test_system.py b/rsd_lib/tests/unit/resources/v2_2/system/test_system.py index 6a72d1e..06976d5 100644 --- a/rsd_lib/tests/unit/resources/v2_2/system/test_system.py +++ b/rsd_lib/tests/unit/resources/v2_2/system/test_system.py @@ -149,3 +149,47 @@ class SystemTestCase(testtools.TestCase): # | WHEN & THEN | self.assertIsInstance(self.system_inst.processors, processor.ProcessorCollection) + + +class SystemCollectionTestCase(testtools.TestCase): + + def setUp(self): + super(SystemCollectionTestCase, self).setUp() + self.conn = mock.Mock() + with open('rsd_lib/tests/unit/json_samples/v2_2/' + 'system_collection.json', 'r') as f: + self.conn.get.return_value.json.return_value = json.loads(f.read()) + self.system_col = system.SystemCollection( + self.conn, '/redfish/v1/Systems', + redfish_version='1.1.0') + + def test__parse_attributes(self): + self.system_col._parse_attributes() + self.assertEqual('1.1.0', self.system_col.redfish_version) + self.assertEqual(('/redfish/v1/Systems/System1', + '/redfish/v1/Systems/System2'), + self.system_col.members_identities) + + @mock.patch.object(system, 'System', autospec=True) + def test_get_member(self, mock_system): + self.system_col.get_member( + '/redfish/v1/Systems/System1') + mock_system.assert_called_once_with( + self.system_col._conn, + '/redfish/v1/Systems/System1', + redfish_version=self.system_col.redfish_version) + + @mock.patch.object(system, 'System', autospec=True) + def test_get_members(self, mock_system): + members = self.system_col.get_members() + calls = [ + mock.call(self.system_col._conn, + '/redfish/v1/Systems/System1', + redfish_version=self.system_col.redfish_version), + mock.call(self.system_col._conn, + '/redfish/v1/Systems/System2', + redfish_version=self.system_col.redfish_version) + ] + mock_system.assert_has_calls(calls) + self.assertIsInstance(members, list) + self.assertEqual(2, len(members))