public async Task Should_throw_CannotJoinGameException() { var context = DbContextFactory.CreateTripleTriadContext(); var game = CreateGame(); game.ChallengerId = Guid.NewGuid(); await context.Games.AddAsync(game); await context.SaveChangesAsync(); var command = new GameJoin.Request() { GameId = GameId, PlayerId = PlayerId }; var subject = new GameJoin.RequestHandler(context); Func <Task> act = async() => await subject.Handle(command, default); act.Should() .Throw <CannotJoinGameException>() .Where(e => e.GameId == GameId); }
public void Should_throw_GameNotFoundException() { var gameId = 1; var context = DbContextFactory.CreateTripleTriadContext(); var command = new GameJoin.Request() { GameId = gameId, PlayerId = PlayerId }; var subject = new GameJoin.RequestHandler(context); Func <Task> act = async() => await subject.Handle(command, default); act.Should() .Throw <GameNotFoundException>() .Where(e => e.GameId == gameId); }
public async Task Should_return_joined_game() { var context = DbContextFactory.CreateTripleTriadContext(); var game = CreateGame(); await context.Games.AddAsync(game); await context.SaveChangesAsync(); var command = new GameJoin.Request() { GameId = GameId, PlayerId = PlayerId }; var subject = new GameJoin.RequestHandler(context); var response = await subject.Handle(command, default); response.GameId.Should().Be(GameId); }
public async Task Should_set_game_status_to_choose_cards() { var context = DbContextFactory.CreateTripleTriadContext(); var game = CreateGame(); await context.Games.AddAsync(game); await context.SaveChangesAsync(); var command = new GameJoin.Request() { GameId = GameId, PlayerId = PlayerId }; var subject = new GameJoin.RequestHandler(context); var response = await subject.Handle(command, default); game = await context.Games.SingleAsync(x => x.GameId == response.GameId); game.Status.Should().Be(GameStatus.ChooseCards); }
public async Task Should_have_correct_player_two_id() { var context = DbContextFactory.CreateTripleTriadContext(); var game = CreateGame(); await context.Games.AddAsync(game); await context.SaveChangesAsync(); var command = new GameJoin.Request() { GameId = GameId, PlayerId = PlayerId }; var subject = new GameJoin.RequestHandler(context); var response = await subject.Handle(command, default); game = await context.Games.SingleAsync(x => x.GameId == response.GameId); game.ChallengerId.Should().Be(PlayerId); }