Files
BattleTech/tests/test_store.py
T

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)