public void WhenRunGame_ThenSouldCreateRound() { var newGameRequest = new NewGameRequest { MaxGuessNo = 10, NoOfRounds = 1, UsersInGame = new[] { 1, 2 } }; var gameServiceFixture = new GameServiceFixture(); var gameService = gameServiceFixture.CreateGameService(); var gameId = gameService.Create(newGameRequest); Assert.NotEqual(Guid.Empty, gameId); var usersInGame = new[] { new UserInGame(1, 5), new UserInGame(2, 20) }; var roundRepository = new RoundRepositoryInMemory(); var roundOfGame = new RoundOfGame(gameServiceFixture.GameRepository, roundRepository, gameServiceFixture.UnitOfWork); var round = roundOfGame.RunGame(gameId, usersInGame); Assert.NotNull(round); }
public void WhenGameFinishes_ThenShouldSelectTheWinner() { var expectedGuessNo = 10; var gameServiceFixture = new GameServiceFixture(); var gameService = gameServiceFixture.CreateGameService(); var newGameRequest = new NewGameRequest { MaxGuessNo = 10, NoOfRounds = 3, UsersInGame = new[] { 1, 2, 3 } }; var gameId = gameService.Create(newGameRequest); var roundRepository = new RoundRepositoryInMemory(); var roundOfGame = new RoundOfGame(gameServiceFixture.GameRepository, roundRepository, gameServiceFixture.UnitOfWork); var expectedNonWinner = new UserInGame(1, expectedGuessNo); var expectedWinner = new UserInGame(2, expectedGuessNo - 4); var usersInGame = new List <UserInGame> { expectedNonWinner, expectedWinner, new UserInGame(3, expectedGuessNo - 5) }; roundOfGame.RunGame(gameId, usersInGame); expectedNonWinner.Number = expectedGuessNo - 5; expectedWinner.Number = expectedGuessNo; roundOfGame.RunGame(gameId, usersInGame); roundOfGame.RunGame(gameId, usersInGame); var gameWinner = gameService.GetGameWinner(gameId); Assert.Equal(expectedWinner.UserId, gameWinner); }