public async Task SelectAnswerForFirstRound() { var game = await Fixture.CreateGame(); var round = await Fixture.GetCurrentGameRound(game.GameId); var user = await Fixture.AddNewPlayerToGame(game.GameId); await Fixture.StartGameRound(game.GameId, round.GameRoundId, game.OwnerId); await Fixture.SubmitAnswersForAllPlayers(game.GameId, round.GameRoundId, round.OwnerPlayerId); await Fixture.EndSubmissions(game.GameId, round.GameRoundId, game.OwnerId); var playerAnswer = await Fixture.GetPlayerAnswer(round.GameRoundId, user.PlayerId); var request = new Model.Core.Games.SelectAnswer { GameId = game.GameId, GameRoundId = round.GameRoundId, UserId = game.OwnerId, PlayerAnswerId = playerAnswer.PlayerAnswerId }; var handler = Fixture.GetService <ISelectAnswerHandler>(); var result = await handler.Handle(request, new System.Threading.CancellationToken()); Assert.True(result.IsSuccessful); Assert.Null(result.Error); var player = await Fixture.GetPlayer(user.PlayerId); Assert.Equal(1, player.Points); }
public async Task FinishGameForPointLimit() { int pointsLimit = 3; var game = await Fixture.CreateGame( additionalPlayersCount : 5, pointsLimit : pointsLimit); var user = await Fixture.AddNewPlayerToGame(game.GameId); var handler = Fixture.GetService <ISelectAnswerHandler>(); for (int i = 0; i < pointsLimit; i++) { var round = await Fixture.GetCurrentGameRound(game.GameId); var ownerPlayer = await Fixture.GetPlayer(round.OwnerPlayerId); await Fixture.StartGameRound(game.GameId, round.GameRoundId, ownerPlayer.UserId); await Fixture.SubmitAnswersForAllPlayers(game.GameId, round.GameRoundId, round.OwnerPlayerId); await Fixture.EndSubmissions(game.GameId, round.GameRoundId, ownerPlayer.UserId); var playerAnswer = await Fixture.GetPlayerAnswer(round.GameRoundId, user.PlayerId); var request = new Model.Core.Games.SelectAnswer { GameId = game.GameId, GameRoundId = round.GameRoundId, UserId = ownerPlayer.UserId, PlayerAnswerId = playerAnswer.PlayerAnswerId }; var result = await handler.Handle(request, new System.Threading.CancellationToken()); Assert.True(result.IsSuccessful); Assert.Null(result.Error); } var player = await Fixture.GetPlayer(user.PlayerId); Assert.Equal(pointsLimit, player.Points); game = await Fixture.GetGame(game.GameId); Assert.Equal(player.UserId, game.WinnerId); Assert.Equal(GameStatusEnum.Finished, game.Status); }