2020-11-06 18:12:56 +00:00
|
|
|
import unittest
|
|
|
|
|
|
|
|
from dungeonbattle.game import Game, KeyValues, GameMode
|
|
|
|
from dungeonbattle.menus import MainMenuValues
|
|
|
|
|
|
|
|
|
|
|
|
class TestGame(unittest.TestCase):
|
|
|
|
def setUp(self) -> None:
|
|
|
|
"""
|
|
|
|
Setup game.
|
|
|
|
"""
|
|
|
|
self.game = Game()
|
2020-11-06 19:28:10 +00:00
|
|
|
self.game.new_game(None)
|
2020-11-06 18:12:56 +00:00
|
|
|
|
|
|
|
def test_load_game(self) -> None:
|
|
|
|
self.assertRaises(NotImplementedError, Game.load_game, "game.save")
|
|
|
|
|
|
|
|
def test_key_translation(self) -> None:
|
|
|
|
"""
|
|
|
|
Test key bindings.
|
|
|
|
"""
|
|
|
|
self.assertEqual(self.game.translate_key(
|
|
|
|
self.game.settings.KEY_UP_PRIMARY), KeyValues.UP)
|
|
|
|
self.assertEqual(self.game.translate_key(
|
|
|
|
self.game.settings.KEY_UP_SECONDARY), KeyValues.UP)
|
|
|
|
self.assertEqual(self.game.translate_key(
|
|
|
|
self.game.settings.KEY_DOWN_PRIMARY), KeyValues.DOWN)
|
|
|
|
self.assertEqual(self.game.translate_key(
|
|
|
|
self.game.settings.KEY_DOWN_SECONDARY), KeyValues.DOWN)
|
|
|
|
self.assertEqual(self.game.translate_key(
|
|
|
|
self.game.settings.KEY_LEFT_PRIMARY), KeyValues.LEFT)
|
|
|
|
self.assertEqual(self.game.translate_key(
|
|
|
|
self.game.settings.KEY_LEFT_SECONDARY), KeyValues.LEFT)
|
|
|
|
self.assertEqual(self.game.translate_key(
|
|
|
|
self.game.settings.KEY_RIGHT_PRIMARY), KeyValues.RIGHT)
|
|
|
|
self.assertEqual(self.game.translate_key(
|
|
|
|
self.game.settings.KEY_RIGHT_SECONDARY), KeyValues.RIGHT)
|
|
|
|
self.assertEqual(self.game.translate_key(
|
|
|
|
self.game.settings.KEY_ENTER), KeyValues.ENTER)
|
|
|
|
|
|
|
|
def test_key_press(self) -> None:
|
|
|
|
"""
|
|
|
|
Press a key and see what is done.
|
|
|
|
"""
|
|
|
|
self.assertEqual(self.game.state, GameMode.MAINMENU)
|
|
|
|
self.assertEqual(self.game.main_menu.validate(),
|
|
|
|
MainMenuValues.START)
|
|
|
|
self.game.handle_key_pressed(KeyValues.UP)
|
|
|
|
self.assertEqual(self.game.main_menu.validate(),
|
|
|
|
MainMenuValues.START)
|
|
|
|
self.game.handle_key_pressed(KeyValues.DOWN)
|
|
|
|
self.assertEqual(self.game.main_menu.validate(),
|
|
|
|
MainMenuValues.SETTINGS)
|
|
|
|
self.game.handle_key_pressed(KeyValues.ENTER)
|
|
|
|
self.assertEqual(self.game.state, GameMode.SETTINGS)
|
|
|
|
|
|
|
|
self.game.state = GameMode.MAINMENU
|
|
|
|
|
|
|
|
self.game.handle_key_pressed(KeyValues.DOWN)
|
|
|
|
self.assertEqual(self.game.main_menu.validate(),
|
|
|
|
MainMenuValues.EXIT)
|
|
|
|
self.assertRaises(SystemExit, self.game.handle_key_pressed,
|
|
|
|
KeyValues.ENTER)
|
|
|
|
|
|
|
|
self.game.handle_key_pressed(KeyValues.UP)
|
|
|
|
self.assertEqual(self.game.main_menu.validate(),
|
|
|
|
MainMenuValues.SETTINGS)
|
|
|
|
self.game.handle_key_pressed(KeyValues.UP)
|
|
|
|
self.assertEqual(self.game.main_menu.validate(),
|
|
|
|
MainMenuValues.START)
|
|
|
|
|
|
|
|
self.game.handle_key_pressed(KeyValues.ENTER)
|
|
|
|
self.assertEqual(self.game.state, GameMode.PLAY)
|
|
|
|
|
|
|
|
y, x = self.game.player.y, self.game.player.x
|
|
|
|
self.game.handle_key_pressed(KeyValues.DOWN)
|
|
|
|
new_y, new_x = self.game.player.y, self.game.player.x
|
|
|
|
self.assertEqual(new_y, y + 1)
|
|
|
|
self.assertEqual(new_x, x)
|
|
|
|
|
|
|
|
y, x = new_y, new_x
|
|
|
|
self.game.handle_key_pressed(KeyValues.RIGHT)
|
|
|
|
new_y, new_x = self.game.player.y, self.game.player.x
|
|
|
|
self.assertEqual(new_y, y)
|
|
|
|
self.assertEqual(new_x, x + 1)
|
|
|
|
|
|
|
|
y, x = self.game.player.y, self.game.player.x
|
|
|
|
self.game.handle_key_pressed(KeyValues.UP)
|
|
|
|
new_y, new_x = self.game.player.y, self.game.player.x
|
|
|
|
self.assertEqual(new_y, y - 1)
|
|
|
|
self.assertEqual(new_x, x)
|
|
|
|
|
|
|
|
y, x = self.game.player.y, self.game.player.x
|
|
|
|
self.game.handle_key_pressed(KeyValues.LEFT)
|
|
|
|
new_y, new_x = self.game.player.y, self.game.player.x
|
|
|
|
self.assertEqual(new_y, y)
|
|
|
|
self.assertEqual(new_x, x - 1)
|