Source code for game.test_suite.tests.test_tile
import unittest
from game.common.map.tile import Tile
from game.common.map.wall import Wall
from game.common.stations.station import Station
from game.common.stations.occupiable_station import OccupiableStation
from game.common.avatar import Avatar
from game.common.enums import ObjectType
[docs]class TestTile(unittest.TestCase):
"""
`Test Tile Notes:`
This class tests the different methods in the Tile class.
"""
[docs] def setUp(self) -> None:
self.tile: Tile = Tile()
self.wall: Wall = Wall()
self.station: Station = Station()
self.occupiable_station: OccupiableStation = OccupiableStation()
self.avatar: Avatar = Avatar()
# test adding avatar to tile
[docs] def test_avatar_tile(self):
self.tile.occupied_by = self.avatar
self.assertEqual(self.tile.occupied_by.object_type, ObjectType.AVATAR)
# test adding station to tile
[docs] def test_station_tile(self):
self.tile.occupied_by = self.station
self.assertEqual(self.tile.occupied_by.object_type, ObjectType.STATION)
# test adding occupiable_station to tile
[docs] def test_occupiable_station_tile(self):
self.tile.occupied_by = self.occupiable_station
self.assertEqual(self.tile.occupied_by.object_type, ObjectType.OCCUPIABLE_STATION)
# test adding wall to tile
[docs] def test_wall_tile(self):
self.tile.occupied_by = self.wall
self.assertEqual(self.tile.occupied_by.object_type, ObjectType.WALL)
# test json method
[docs] def test_tile_json(self):
self.tile.occupied_by = self.station
data: dict = self.tile.to_json()
tile: Tile = Tile().from_json(data)
self.assertEqual(self.tile.object_type, tile.object_type)
self.assertEqual(self.tile.occupied_by.object_type, tile.occupied_by.object_type)
# test if json is correct when nested tile
[docs] def test_nested_tile_json(self):
self.occupiable_station.occupied_by = self.avatar
self.tile.occupied_by = self.occupiable_station
data: dict = self.tile.to_json()
tile: Tile = Tile().from_json(data)
self.assertEqual(self.tile.object_type, tile.object_type)
self.assertEqual(self.tile.occupied_by.object_type, tile.occupied_by.object_type)
assert (isinstance(tile.occupied_by, OccupiableStation))
self.assertEqual(self.tile.occupied_by.occupied_by.object_type, tile.occupied_by.occupied_by.object_type)