102 lines
3.5 KiB
Python
102 lines
3.5 KiB
Python
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)
|
|
|