def test_present_start_menu_options_without_existing_minefields(self):
        menu_options = get_keywords(test_action_method=self.subject,
                                    keyword_argument='menu_options',
                                    spy_class=PresentStartMenuOptionsUseCaseObserver,
                                    spied_upon_method_name='did_present_start_menu_options')
        expected_menu_options = MenuOptions(
            options=[StartMenuOptionType.StartNewGame, StartMenuOptionType.Quit],
            initially_selected_option=StartMenuOptionType.StartNewGame)

        self.assertEqual(menu_options, expected_menu_options)
    def test_present_start_menu_options_with_existing_minefields(self):
        self.minefield_repository.create_minefield(board=Board(row_count=5, column_count=5),
                                                   mine_coordinates=frozenset([Coordinate(1, 1)]))
        menu_options = get_keywords(test_action_method=self.subject,
                                    keyword_argument='menu_options',
                                    spy_class=PresentStartMenuOptionsUseCaseObserver,
                                    spied_upon_method_name='did_present_start_menu_options')
        expected_options = [StartMenuOptionType.StartNewGame, StartMenuOptionType.ResumeGame, StartMenuOptionType.Quit]
        expected_menu_options = MenuOptions(options=expected_options,
                                            initially_selected_option=StartMenuOptionType.StartNewGame)

        self.assertEqual(menu_options, expected_menu_options)
 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)