public void ShouldNotIncrementTheScoreWhenThereIsADraw() { Action <GameFinishedArgs> gameFinished = null; Team actualWinningTeam = Team.None; LineWin actualLineWin = LineWin.None; mockBoard.SetupSet <Action <GameFinishedArgs> >(x => x.GameFinished = It.IsAny <Action <GameFinishedArgs> >()) .Callback((x) => { gameFinished = x; }); ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); subject.TeamAndLineWon += (ValueTuple <Team, LineWin> arg) => { actualWinningTeam = arg.Item1; actualLineWin = arg.Item2; }; subject.IsGameOver.Should().BeFalse(); gameFinished?.Invoke(new GameFinishedArgs(GameResult.Draw, null, LineWin.None)); subject.Scores[mockBoard.Object.PlayerOne.Team].Should().Be(0); subject.Scores[mockBoard.Object.PlayerTwo.Team].Should().Be(0); actualWinningTeam.Should().Be(Team.None); actualLineWin.Should().Be(LineWin.None); }
public void ShouldShowWhichTeamAndLineWonAndThatTheGameIsOver() { Action <GameFinishedArgs> gameFinished = null; Team actualWinningTeam = Team.None; LineWin actualLineWin = LineWin.None; #pragma warning disable CS0618 mockBoard.SetupSet(x => x.GameFinished).Callback((x) => #pragma warning restore CS0618 { gameFinished = x; }); ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); subject.TeamAndLineWon += (ValueTuple <Team, LineWin> arg) => { actualWinningTeam = arg.Item1; actualLineWin = arg.Item2; }; subject.IsGameOver.Should().BeFalse(); gameFinished?.Invoke(new GameFinishedArgs(GameResult.Win, mockBoard.Object.PlayerOne, LineWin.MiddleHorizontal)); actualWinningTeam.Should().Be(mockBoard.Object.PlayerOne.Team); actualLineWin.Should().Be(LineWin.MiddleHorizontal); subject.IsGameOver.Should().BeTrue(); }
public void ShouldShowWhichLineWon() { Action <GameFinishedArgs> gameFinished = null; Team actualWinningTeam = Team.None; LineWin actualLineWin = LineWin.None; mockBoard.SetupSet <Action <GameFinishedArgs> >(x => x.GameFinished = It.IsAny <Action <GameFinishedArgs> >()) .Callback((x) => { gameFinished = x; }); ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); subject.TeamAndLineWon += (ValueTuple <Team, LineWin> arg) => { actualWinningTeam = arg.Item1; actualLineWin = arg.Item2; }; gameFinished?.Invoke(new GameFinishedArgs(GameResult.Win, mockBoard.Object.PlayerOne, LineWin.MiddleHorizontal)); actualLineWin.Should().Be(LineWin.MiddleHorizontal); }