private async Task <string> CreateGameWithPlayer(GameParticipantsRepository repository, string userId) { var game = _dbContext.Games.Add(new Game { Name = $"game_{Guid.NewGuid()}", CreatedBy = "user", IsDeleted = false, Ready = true }); _dbContext.SaveChanges(); var organizedGame = _dbContext.OrganizedGames.Add(new OrganizedGame { GameTypeId = game.Entity.Id, OrganizerId = userId }); var gameId = organizedGame.Entity.Id; await repository.Add(new GameParticipant { StartTime = DateTime.UtcNow, PlayerId = userId, GameId = gameId }); return(gameId); }
public async Task GetParticipantsByGame_WhenGameIdIsProvided_ShouldReturnReturnGamesParticipants() { var repository = new GameParticipantsRepository(_dbContext); var user = _dbContext.Users.Add(new User { UserName = "******" }); _dbContext.SaveChanges(); var user1Id = user.Entity.Id; var user2 = _dbContext.Users.Add(new User { UserName = "******" }); _dbContext.SaveChanges(); var user2Id = user2.Entity.Id; var games = new List <string>() { await CreateGameWithPlayer(repository, user1Id), await CreateGameWithPlayer(repository, user2Id) }; var found = repository.GetParticipantsByGame(games[0]); found.Count().ShouldBe(1); var player = found.First(); player.PlayerId.ShouldBe(user.Entity.Id); }