From 0b35de7503acc5c8f41da2540b3b2f53165ee170 Mon Sep 17 00:00:00 2001 From: DannyAbdi <dannyabdi13@gmail.com> Date: Tue, 19 Mar 2024 03:01:26 +0000 Subject: [PATCH] Created test class for button class --- testButton.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 testButton.py diff --git a/testButton.py b/testButton.py new file mode 100644 index 0000000..c191dbb --- /dev/null +++ b/testButton.py @@ -0,0 +1,56 @@ +import unittest +from unittest.mock import Mock +from button import Button + + +class TestButton(unittest.TestCase): + def setUp(self): + pygame = Mock() + self.mock_screen = pygame.display.set_mode.return_value + self.mock_player_controller = Mock() + self.mock_maze = Mock() + self.mock_image = Mock() + self.mock_image.get_width.return_value = 100 + self.mock_image.get_height.return_value = 50 + self.button = Button(self.mock_image, 100, 100, 1, None) + + def test_draw(self): + mock_image = Mock() + button = Button(mock_image, 100, 100, 1, Mock()) + + button.draw() + + expected_calls = [ + ((mock_image, (100, 100)),), + ] + self.assertEqual(self.mock_screen.blit.call_args_list, expected_calls) + + def test_handle_mouse_click_when_clicked(self): + button = Button(Mock(), 100, 100, 1, self.mock_player_controller) + + button.handle_mouse_click((110, 110), self.mock_maze) + + self.mock_maze.set_level.assert_called_once_with(1) + self.mock_player_controller.reset_player_position.assert_called_once() + self.assertTrue(button.is_clicked) + + def test_handle_mouse_click_when_not_clicked(self): + button = Button(Mock(), 100, 100, 1, self.mock_player_controller) + + button.handle_mouse_click((90, 90), self.mock_maze) + + self.assertFalse(self.mock_maze.set_level.called) + self.assertFalse(self.mock_player_controller.reset_player_position.called) + self.assertFalse(button.is_clicked) + + def test_check_click_within_boundaries(self): + result = self.button.check_click((150, 125)) + self.assertTrue(result) + + def test_check_click_outside_boundaries(self): + result = self.button.check_click((50, 75)) + self.assertFalse(result) + + +if __name__ == "__main__": + unittest.main() -- GitLab