Source code for game.test_suite.tests.test_occupiable_station
import unittest
from game.common.stations.occupiable_station import OccupiableStation
from game.common.stations.station import Station
from game.common.map.wall import Wall
from game.common.avatar import Avatar
from game.common.items.item import Item
from game.common.enums import ObjectType
import game.test_suite.utils
[docs]class TestOccupiableStation(unittest.TestCase):
"""
`Test Item Notes:`
This class tests the different methods in the OccupiableStation class and ensures the objects that occupy them
are properly set.
"""
[docs] def setUp(self) -> None:
self.occupiable_station: OccupiableStation = OccupiableStation()
self.occupiable_station1: OccupiableStation = OccupiableStation()
self.wall: Wall = Wall()
self.station: Station = Station()
self.avatar: Avatar = Avatar()
self.item: Item = Item()
self.utils = game.test_suite.utils
# test adding wall to occupiable_station
[docs] def test_wall_occ(self):
self.occupiable_station.occupied_by = self.wall
self.assertEqual(self.occupiable_station.occupied_by.object_type, ObjectType.WALL)
# test adding station to occupiable_station
[docs] def test_station_occ(self):
self.occupiable_station.occupied_by = self.station
self.assertEqual(self.occupiable_station.occupied_by.object_type, ObjectType.STATION)
# test adding avatar to occupiable_station
[docs] def test_avatar_occ(self):
self.occupiable_station.occupied_by = self.avatar
self.assertEqual(self.occupiable_station.occupied_by.object_type, ObjectType.AVATAR)
# test adding item to occupiable_station
[docs] def test_item_occ(self):
self.occupiable_station.item = self.item
self.assertEqual(self.occupiable_station.item.object_type, ObjectType.ITEM)
self.assertEqual(self.occupiable_station.item.durability, self.item.durability)
self.assertEqual(self.occupiable_station.item.value, self.item.value)
# test json method
[docs] def test_occ_json(self):
self.occupiable_station.occupied_by = self.avatar
data: dict = self.occupiable_station.to_json()
occupiable_station: OccupiableStation = OccupiableStation().from_json(data)
self.assertEqual(self.occupiable_station.object_type, occupiable_station.object_type)
self.assertEqual(self.occupiable_station.occupied_by.object_type, occupiable_station.occupied_by.object_type)
# test json method with nested occupiable_station
[docs] def test_nested_occ_json(self):
self.occupiable_station.occupied_by = self.occupiable_station1
self.occupiable_station.occupied_by.occupied_by = self.avatar
data: dict = self.occupiable_station.to_json()
occupiable_station: OccupiableStation = OccupiableStation().from_json(data)
self.assertEqual(self.occupiable_station.object_type, occupiable_station.object_type)
self.assertEqual(self.occupiable_station.occupied_by.object_type, occupiable_station.occupied_by.object_type)
assert (isinstance(occupiable_station.occupied_by, OccupiableStation))
self.assertEqual(self.occupiable_station.occupied_by.occupied_by.object_type,
occupiable_station.occupied_by.occupied_by.object_type)