public void GetAllGames_ShouldReturn_All_GameViewModels() { var gameRepoBuilder = new GameRepositoryBuilder(); var gameRepo = gameRepoBuilder .WithAll() .Build(); var levelsRepoBuilder = new LevelRepositoryBuilder(); var levelRepo = levelsRepoBuilder .WithAll() .Build(); var sut = new GamesService(gameRepo, levelRepo, null, null, Mapper); var actual = sut.GetAllGames(); var expected = new List <GameViewModel> { new GameViewModel { Id = "7", Name = "Nameri mqstoto", Image = levelRepo.All().FirstOrDefault(l => l.GameId == "7" && l.NumberInGame == 3).Image }, new GameViewModel { Id = "9", Name = "Na more", Image = levelRepo.All().FirstOrDefault(l => l.GameId == "9" && l.NumberInGame == 3).Image } }.AsQueryable(); Assert.Equal(expected, actual, new GameViewModelComparer()); gameRepoBuilder.GamesRepoMock.Verify(); }
public async Task UserStartGame_ShouldDoNotAddUserToGame_IfUserAureadyExistInThisGame() { var gameRepoBuilder = new GameRepositoryBuilder(); var gameRepo = gameRepoBuilder .WithAll() .Build(); var levelsRepoBuilder = new LevelRepositoryBuilder(); var levelRepo = levelsRepoBuilder .WithAll() .Build(); var levelsParticipantsRepoBuilder = new GameLevelParticipantRepositoryBuilder(); var levelsParticipantsRepo = levelsParticipantsRepoBuilder .WithAll() .Build(); var sut = new GamesService(gameRepo, levelRepo, levelsParticipantsRepo, null, Mapper); var user = new GoUser { Id = "10" }; await sut.UserStartGame("7", user); levelsParticipantsRepoBuilder.LevelParticipantRepoMock.Verify(r => r.AddRangeAsync(It.IsAny <List <GameLevelParticipant> >()), Times.Never); levelsParticipantsRepoBuilder.LevelParticipantRepoMock.Verify(r => r.SaveChangesAsync(), Times.Never); gameRepoBuilder.GamesRepoMock.Verify(); levelsRepoBuilder.LevelsRepoMock.Verify(); levelsParticipantsRepoBuilder.LevelParticipantRepoMock.Verify(); }
public async Task UserStartGame_ShouldThrowIfGameNotExist() { var gameRepoBuilder = new GameRepositoryBuilder(); var gameRepo = gameRepoBuilder .WithAll() .Build(); var levelsRepoBuilder = new LevelRepositoryBuilder(); var levelRepo = levelsRepoBuilder .WithAll() .Build(); var levelsParticipantsRepoBuilder = new GameLevelParticipantRepositoryBuilder(); var levelsParticipantsRepo = levelsParticipantsRepoBuilder .WithAll() .Build(); var sut = new GamesService(gameRepo, levelRepo, levelsParticipantsRepo, null, Mapper); var user = new GoUser { Id = "1" }; var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await sut.UserStartGame("11", user)); Assert.Equal("Game do not exist!", ex.Message); levelsParticipantsRepoBuilder.LevelParticipantRepoMock.Verify(r => r.AddRangeAsync(It.IsAny <List <GameLevelParticipant> >()), Times.Never); levelsParticipantsRepoBuilder.LevelParticipantRepoMock.Verify(r => r.SaveChangesAsync(), Times.Never); gameRepoBuilder.GamesRepoMock.Verify(); levelsRepoBuilder.LevelsRepoMock.Verify(); }
public void GetDetails_ShouldThrow_IfGameNotExist() { var gameRepoBuilder = new GameRepositoryBuilder(); var gameRepo = gameRepoBuilder .WithAll() .Build(); var sut = new GamesService(gameRepo, null, null, null, Mapper); var ex = Assert.Throws <ArgumentException>(() => sut.GetDetails("17")); Assert.Equal("Game do not exist!", ex.Message); }
public async Task AddGame_ShouldAddNewGameCorrectlyWithCorrectData() { var gamesRepoBuilder = new GameRepositoryBuilder(); var gameRepo = gamesRepoBuilder .WithAll() .Build(); var levelsRepoBuilder = new LevelRepositoryBuilder(); var levelRepo = levelsRepoBuilder .WithAll() .Build(); var sut = new GamesService(gameRepo, levelRepo, null, null, Mapper); var createGameModel = new CreateGameViewModel { Name = "Haide na planina", Description = "planinaaaaaaaaa", Level1 = new CreateLevelViewModel { Description = "level1Description", NumberInGame = 1, Points = 3, Image = SetupFileMock().Object }, Level2 = new CreateLevelViewModel { Description = "level2Description", NumberInGame = 2, Points = 5, Image = SetupFileMock().Object }, Level3 = new CreateLevelViewModel { Description = "level3Description", NumberInGame = 3, Points = 7, Image = SetupFileMock().Object } }; var user = new GoUser { Id = "7" }; await sut.AddGame(createGameModel, user); gamesRepoBuilder.GamesRepoMock.Verify(r => r.AddAsync(It.IsAny <Game>()), Times.Once); gamesRepoBuilder.GamesRepoMock.Verify(r => r.SaveChangesAsync(), Times.Once); levelsRepoBuilder.LevelsRepoMock.Verify(r => r.AddAsync(It.IsAny <Level>()), Times.Exactly(3)); levelsRepoBuilder.LevelsRepoMock.Verify(r => r.SaveChangesAsync(), Times.Once); }
public void GetDetails_ShouldReturn_GameDetailsViewModel() { var gameRepoBuilder = new GameRepositoryBuilder(); var gameRepo = gameRepoBuilder .WithAll() .Build(); var levelsRepoBuilder = new LevelRepositoryBuilder(); var levelRepo = levelsRepoBuilder .WithAll() .Build(); var usersRepoBuilder = new GoUserRepositoryBuilder(); var userRepo = usersRepoBuilder .WithAll() .Build(); var levelsParticipantsRepoBuilder = new GameLevelParticipantRepositoryBuilder(); var levelsParticipantsRepo = levelsParticipantsRepoBuilder .WithAll() .Build(); var sut = new GamesService(gameRepo, levelRepo, levelsParticipantsRepo, userRepo, Mapper); var actual = sut.GetDetails("7"); var expected = new GameDetailsViewModel { Id = "7", Name = "Nameri mqstoto", Description = "nameriiiiiiiiiii", Creator = "Niki", Level1 = new LevelViewModel { Id = "1", Description = "mmmmm", Points = 1, GameId = "7", NumberInGame = 1, Image = levelRepo.All().FirstOrDefault(x => x.Id == "1").Image }, Level2 = new LevelViewModel { Id = "2", Description = "nnnnnnnnnnnnnnnn", Points = 3, GameId = "7", NumberInGame = 2, Image = levelRepo.All().FirstOrDefault(x => x.Id == "2").Image }, Level3 = new LevelViewModel { Id = "3", Description = "rrrrrrrrrrrrrrrrrr", Points = 5, GameId = "7", NumberInGame = 3, Image = levelRepo.All().FirstOrDefault(x => x.Id == "3").Image }, GameParticipantsLevel1 = new List <GameLevelParticipantViewModel> { new GameLevelParticipantViewModel { GameId = "7", LevelId = "1", ParticipantId = "10", Participant = "Saso ", CorrespondingImage = ConvertImageToByteArray(SetupFileMock().Object), StatusLevel = StatusLevel.NotPassed } }, GameParticipantsLevel2 = new List <GameLevelParticipantViewModel> { new GameLevelParticipantViewModel { GameId = "7", LevelId = "2", ParticipantId = "10", Participant = "Saso ", CorrespondingImage = ConvertImageToByteArray(SetupFileMock().Object), StatusLevel = StatusLevel.NotPassed } }, GameParticipantsLevel3 = new List <GameLevelParticipantViewModel> { new GameLevelParticipantViewModel { GameId = "7", LevelId = "3", ParticipantId = "10", Participant = "Saso ", CorrespondingImage = ConvertImageToByteArray(SetupFileMock().Object), StatusLevel = StatusLevel.NotPassed } } }; Assert.Equal(expected, actual, new GameDetailsViewModelComparer()); Assert.Equal(expected.Level1, actual.Level1, new LevelViewModelComparer()); Assert.Equal(expected.Level2, actual.Level2, new LevelViewModelComparer()); Assert.Equal(expected.Level3, actual.Level3, new LevelViewModelComparer()); Assert.Equal(expected.GameParticipantsLevel1, actual.GameParticipantsLevel1, new GameLevelParticipantViewModelComparer()); Assert.Equal(expected.GameParticipantsLevel2, actual.GameParticipantsLevel2, new GameLevelParticipantViewModelComparer()); Assert.Equal(expected.GameParticipantsLevel3, actual.GameParticipantsLevel3, new GameLevelParticipantViewModelComparer()); gameRepoBuilder.GamesRepoMock.Verify(); }