public void FullShortGameTest() { var mockCircleRepository = new MockCircleRepository(); var mockGameRepository = new MockGameRepository(); var mockPhraseRepository = new MockPhraseRepository(); var mockRandomProvider = new MockRandomProvider(); mockCircleRepository.Circle = GetCircle(); mockPhraseRepository.Phrase = "Short Game Test"; const int indexOneThousand = 7; mockRandomProvider.Values.Add((0, 13), indexOneThousand); var startNewGamePresenter = new Presenter <StartNewGame.ResponseModel>(); var startNewGameInteractor = new StartNewGame(mockPhraseRepository, mockGameRepository); startNewGameInteractor.HandleRequest(new StartNewGame.RequestModel() { PlayerNames = new string[] { "Alice", "Bob", "Charlie" } }, startNewGamePresenter); var spinCirclePresenter = new Presenter <SpinCircle.ResponseModel>(); var spinCircleInteractor = new SpinCircle(mockGameRepository, mockCircleRepository, mockRandomProvider); spinCircleInteractor.HandleRequest(new SpinCircle.RequestModel() { GameIdentifier = startNewGamePresenter.ResponseModel.GameIdentifier }, spinCirclePresenter); var pickLetterPresenter = new Presenter <PickLetter.ResponseModel>(); var pickLetterInteractor = new PickLetter(mockGameRepository); pickLetterInteractor.HandleRequest(new PickLetter.RequestModel() { GameIdentifier = startNewGamePresenter.ResponseModel.GameIdentifier, Letter = 'e' }, pickLetterPresenter); var guessPhrasePresenter = new Presenter <GuessPhrase.ResponseModel>(); var guessPhraseInteractor = new GuessPhrase(mockGameRepository); guessPhraseInteractor.HandleRequest(new GuessPhrase.RequestModel() { GameIdentifier = startNewGamePresenter.ResponseModel.GameIdentifier, Guess = "Short Game Test" }, guessPhrasePresenter); Assert.Equal("Short Game Test", guessPhrasePresenter.ResponseModel.Phrase); Assert.Equal("Alice", guessPhrasePresenter.ResponseModel.CurrentPlayerName); Assert.Equal(2000, guessPhrasePresenter.ResponseModel.Reward); Assert.True(mockGameRepository.Games.Single().Value.IsOver); }
public void StartsNewGameCorrectly() { var mockPhraseRepository = new MockPhraseRepository(); var mockGameRepository = new MockGameRepository(); var interactor = new StartNewGame(mockPhraseRepository, mockGameRepository); mockPhraseRepository.Phrase = "Small Test Phrase"; mockGameRepository.GameIdentifier = Guid.Parse("00000000-0000-0000-0000-000000000001"); var requestModel = new StartNewGame.RequestModel() { PlayerNames = new string[] { "Alice", "Bob", "Charlie" } }; var presenter = new Presenter <StartNewGame.ResponseModel>(); interactor.HandleRequest(requestModel, presenter); var responseModel = presenter.ResponseModel; Assert.Equal(Guid.Parse("00000000-0000-0000-0000-000000000001"), responseModel.GameIdentifier); Assert.Equal("_____ ____ ______", responseModel.Phrase); Assert.Equal("Alice", responseModel.CurrentPlayerName); }