Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 4
0
    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)