WMICraft/logic/__tests__/knights_queue_test.py

55 lines
1.7 KiB
Python
Raw Normal View History

2022-04-04 21:07:40 +02:00
import unittest
from logic.knights_queue import KnightsQueue
from models.knight import Knight
class KnightsQueueTest(unittest.TestCase):
def test_should_raise_when_team_has_dead_knights(self):
with self.assertRaises(Exception):
knight1 = Knight(None)
knight1.health = 0
knight2 = Knight(None)
knight2.health = -1
knight3 = Knight(None)
knight3.health = -2
knight4 = Knight(None)
knight4.health = 20
knights_queue = KnightsQueue([knight1, knight2, knight3], [knight4])
knights_queue.dequeue_knight()
knights_queue.dequeue_knight()
def test_should_return_knight_from_any_team_and_add_to_queue_again(self):
knight1 = Knight(None)
knight1.health = 10
knight2 = Knight(None)
knight2.health = 20
knights_queue = KnightsQueue([knight1], [knight2])
result1 = knights_queue.dequeue_knight()
result2 = knights_queue.dequeue_knight()
result3 = knights_queue.dequeue_knight()
self.assertIsNotNone(result1)
self.assertIsNotNone(result2)
self.assertIsNotNone(result3)
self.assertTrue(result1.health == result3.health)
def test_should_raise_when_only_one_team_alive(self):
with self.assertRaises(Exception):
knight = Knight(None)
knight.health = 21
knights_queue = KnightsQueue([knight], [])
knights_queue.dequeue_knight()
def test_should_raise_when_no_team_alive(self):
with self.assertRaises(Exception):
knights_queue = KnightsQueue([], [])
knights_queue.dequeue_knight()
if __name__ == '__main__':
unittest.main()