Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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();
        }