def test_play_with_valid_dimensions_should_notify_observer_with_board(self): spy = Mock(GameObserver) self.subject.start_new_game(row_count=5, column_count=5, observer=spy) board = spy.game_did_create_board.call_args[1]['board'] expected_board = Board(row_count=5, column_count=5) assert_boards_equal(board=board, expected_board=expected_board, test_case=self)
def test_present_start_menu_with_no_minefields_should_notify_observer_with_present_create_board_options(self): spy = Mock(GameObserver) self.subject.present_start_menu(observer=spy) keyword_arguments = spy.game_did_present_start_menu.call_args[1] present_create_board_options = keyword_arguments['present_create_board_options'] present_create_board_options() keyword_arguments = spy.game_did_present_create_board_options.call_args[1] minimum_row_count = keyword_arguments['minimum_row_count'] minimum_column_count = keyword_arguments['minimum_column_count'] self.assertEqual(minimum_row_count, 5) self.assertEqual(minimum_column_count, 5) create_board = keyword_arguments['create_board'] create_board(row_count=minimum_row_count, column_count=minimum_column_count) keyword_arguments = spy.game_did_create_board.call_args[1] board = keyword_arguments['board'] expected_board = Board(row_count=5, column_count=5) assert_boards_equal(board=board, expected_board=expected_board, test_case=self)
def test_present_start_menu_options_should_notify_observer_with_present_create_board_options_callable(self): present_create_board_options = get_keywords(test_action_method=self.subject, keyword_argument='present_create_board_options', spy_class=PresentStartMenuOptionsUseCaseObserver, spied_upon_method_name='did_present_start_menu_options') create_board = get_keywords(test_action_method=present_create_board_options, keyword_argument='create_board', spy_class=PresentCreateBoardOptionsUseCaseObserver, spied_upon_method_name='did_present_create_board_options') create_board = partial(create_board.__call__, row_count=7, column_count=6) board = get_keywords(test_action_method=create_board, keyword_argument='board', spy_class=CreateBoardUseCaseObserver, spied_upon_method_name='did_create_board') expected_board = Board(row_count=7, column_count=6) assert_boards_equal(board=board, expected_board=expected_board, test_case=self) board_snapshot = get_keywords(test_action_method=create_board, keyword_argument='board_snapshot', spy_class=CreateBoardUseCaseObserver, spied_upon_method_name='did_create_board') expected_board_snapshot = [[CellType.Unknown for column in range(6)] for row in range(7)] assert_board_snapshots_equal(board_snapshot=board_snapshot, expected_board_snapshot=expected_board_snapshot, test_case=self)
def test_with_valid_parameters_should_notify_observer_with_board(self): self.subject(row_count=5, column_count=5, observer=self.spy) expected_board = Board(row_count=5, column_count=5) board = self.spy.did_create_board.call_args[1]['board'] assert_boards_equal(board, expected_board, self)