diff --git a/tests/test_store.py b/tests/test_store.py new file mode 100644 index 0000000..f725b8d --- /dev/null +++ b/tests/test_store.py @@ -0,0 +1,101 @@ +import unittest + +from mech_factory import InnerStructure, Reaktor +from mech_factory.store import ComponentStore, ItemStore, InnerArmorStore +from mech_factory.component_storage.items import Gyroskope, Item, BigItem, DurableItem, ItemStatus, ItemTypes + + +class TestComponentStore(unittest.TestCase): + def setUp(self): + # reactor_value = 165 + self._store = ComponentStore(tonnage=55.0, movement_rate=3) + + def test_build_inner_structure(self): + item = self._store.get_inner_structure() + + self.assertIsInstance(item, InnerStructure) + self.assertIsInstance(item.gyroskope, Gyroskope) + self.assertEqual(item.tonnage, 5.5) + self.assertIsInstance(item.areas, dict) + self.assertCountEqual(item.areas, {}) + self.assertIsInstance(item.zones, dict) + self.assertCountEqual(item.zones, {}) + + def test_build_gyroscope(self): + item = self._store.get_gyroskope() + + self.assertIsInstance(item, Item) + self.assertEqual(item.state, ItemStatus.FINE) + self.assertIsInstance(item, BigItem) + self.assertEqual(item.tonnage, 2.0) + self.assertEqual(item.type, ItemTypes.GYROSKOPE) + self.assertIsInstance(item, DurableItem) + self.assertEqual(item.max_strike, 2) + + def test_build_reaktor(self): + item = self._store.get_reaktor() + + self.assertIsInstance(item, Reaktor) + self.assertIsInstance(item, Item) + self.assertEqual(item.state, ItemStatus.FINE) + self.assertIsInstance(item, BigItem) + self.assertEqual(item.tonnage, 6.0) + self.assertEqual(item.type, ItemTypes.REAKTOR) + self.assertIsInstance(item, DurableItem) + self.assertEqual(item.max_strike, 3) + +class TestItemsStore(unittest.TestCase): + + def setUp(self): + self._store = ItemStore() + + def test_build_cockpit(self): + item = self._store.get_cockpit() + + self.assertIsInstance(item, Item) + self.assertEqual(item.state, ItemStatus.FINE) + self.assertIsInstance(item, BigItem) + self.assertEqual(item.type, ItemTypes.COCKPIT) + self.assertEqual(item.tonnage, 3.0) + + def test_build_sustainment(self): + item = self._store.get_sustainment() + + self.assertIsInstance(item, Item) + self.assertEqual(item.state, ItemStatus.FINE) + self.assertEqual(item.type, ItemTypes.SUSTAINMENT) + + def test_build_sensors(self): + item = self._store.get_sensors() + + self.assertIsInstance(item, Item) + self.assertEqual(item.state, ItemStatus.FINE) + self.assertEqual(item.type, ItemTypes.SENSORS) + self.assertIsInstance(item, DurableItem) + self.assertEqual(item.max_strike, 2) + + def test_build_joint(self): + item = self._store.get_joint() + + self.assertIsInstance(item, Item) + self.assertEqual(item.state, ItemStatus.FINE) + self.assertEqual(item.type, ItemTypes.JOINT) + + def test_build_activator(self): + item = self._store.get_activator() + + self.assertIsInstance(item, Item) + self.assertEqual(item.state, ItemStatus.FINE) + self.assertEqual(item.type, ItemTypes.ACTIVATOR) + +class TestInnerAmorForTonnageAndArea(unittest.TestCase): + def setUp(self): + self._store = InnerArmorStore(tonnage=55.0) + + def test_build_inner_structure(self): + self.assertEqual(self._store.get_head_amor(), 3) + self.assertEqual(self._store.get_middle_torso_amor(), 18) + self.assertEqual(self._store.get_side_torso_amor(), 13) + self.assertEqual(self._store.get_arm_amore(), 9) + self.assertEqual(self._store.get_leg_amore(), 13) +