Esempio n. 1
0
        public void TryGuessNumber_Miss()
        {
            var game = new NewGameDTO().ToNewGameModel();

            game.Id = "ABCDE";

            var gameService = GetSampleGameService(game);

            for (int i = 1; i < game.Attempts; i++)
            {
                var loopResult = gameService.TryGuesst(new GuessDTO
                {
                    Id     = game.Id,
                    Number = game.Number - 1
                });

                Assert.Equal(Domian.Enums.GameStatus.pending, loopResult.Status);
                Assert.Equal(game.Attempts - i, game.AttemptsLeft);
            }
            var result = gameService.TryGuesst(new GuessDTO
            {
                Id     = game.Id,
                Number = game.Number - 1 < game.From ? game.Number + 1 : game.Number - 1
            });

            Assert.Equal(Domian.Enums.GameStatus.lost, result.Status);
            Assert.Equal(0, game.AttemptsLeft);
        }
Esempio n. 2
0
        private IGameService GetSampleGameService(Game game = null)
        {
            var scores = new List <PlayerScore>
            {
                new PlayerScore("ABC", 1000),
                new PlayerScore("CBA", 100)
            };

            if (game == null)
            {
                game    = new NewGameDTO().ToNewGameModel();
                game.Id = "ABCDE";
            }

            var scoresRepo = new Mock <IScoresRepository>();

            scoresRepo.Setup(m => m.Get()).Returns(scores);
            scoresRepo.Setup(m => m.TryAdd(It.IsAny <PlayerScore>())).Returns(3);

            var gamesRepo = new Mock <IGamesRepository>();

            gamesRepo.Setup(m => m.Get(It.IsAny <string>())).Returns(game);
            gamesRepo.Setup(m => m.Add(It.IsAny <Game>())).Returns <Game>(m =>
                                                                          { m.Id = "ABCDE";
                                                                            return(m); });
            gamesRepo.Setup(m => m.Edit(It.IsAny <Game>())).Returns <Game>(g => g);

            return(new GameService(gamesRepo.Object, scoresRepo.Object));
        }
Esempio n. 3
0
        private async void SendNewGameToAPI(NewGameDTO newGameDTO)
        {
            var        game   = JsonConvert.SerializeObject(newGameDTO);
            HttpClient client = new HttpClient();
            var        res    = await client.PostAsync("http://localhost:5000/api/Game", new StringContent(game, System.Text.Encoding.UTF8, "application/json"));

            RefreshGames();
        }
Esempio n. 4
0
        public void AddGame_Succes()
        {
            var gameService = GetSampleGameService();

            var newGame = new NewGameDTO();

            var game = gameService.AddGame(newGame);

            Assert.True(!string.IsNullOrEmpty(game.Id));
        }
Esempio n. 5
0
        private int CreatePair(NewGameDTO newGameDTO)
        {
            GamePair gamePair = new GamePair(newGameDTO.GameType, FindPassenger(newGameDTO.PlayerId1), FindPassenger(newGameDTO.PlayerId2));

            gamePairs.Add(gamePair);
            context.SaveChanges();
            gamePair.SetGamePairForGames();
            context.SaveChanges();
            return(gamePair.GamePairId);
        }
Esempio n. 6
0
        public GameIdDTO AddGame(NewGameDTO newGame)
        {
            if (newGame is null)
            {
                throw new ArgumentNullException(nameof(newGame));
            }

            newGame.IsValid();

            var game = gamesRepository.Add(newGame.ToNewGameModel());

            return(new GameIdDTO(game.Id));
        }
Esempio n. 7
0
        public void NewGameDTOIsValidFails(int attempts, int from, int to, string exceptionMessage)
        {
            var newGame = new NewGameDTO
            {
                PlayerName = "Adam",
                Attempts   = attempts,
                From       = from,
                To         = to
            };

            var ex = Assert.Throws <GameException>(() => newGame.IsValid());

            Assert.Equal(exceptionMessage, ex.Message);
        }
Esempio n. 8
0
        public void NewGameDTOIsValid()
        {
            var newGame = new NewGameDTO
            {
                PlayerName = "Adam",
                Attempts   = 4,
                From       = 4,
                To         = 8
            };

            Assert.True(newGame.IsValid());

            newGame.PlayerName = "";
            Assert.True(!newGame.IsValid());
        }
Esempio n. 9
0
        public void TryGuessNumber_NumberOutOfRange()
        {
            var game = new NewGameDTO().ToNewGameModel();

            game.Id = "ABCDE";

            var gameService = GetSampleGameService(game);

            var guess = new GuessDTO
            {
                Id     = game.Id,
                Number = game.From - 1
            };

            Assert.Throws <GameException>(() => gameService.TryGuesst(guess));
        }
Esempio n. 10
0
        public async Task <IHttpActionResult> Post(NewGameDTO gameDto)
        {
            if (gameDto == null)
            {
                return(BadRequest("Argument Null"));
            }

            var game = new Game()
            {
                Winner = gameDto.Winner
            };

            _context.Games.Add(game);

            await _context.SaveChangesAsync();

            return(Ok());
        }
Esempio n. 11
0
        public void TryGuessNumber_TimeUp()
        {
            var game = new NewGameDTO().ToNewGameModel();

            game.Id = "ABCDE";
            game.LastAttemptDate = game.LastAttemptDate.AddDays(-1);

            var gameService = GetSampleGameService(game);


            var guess = new GuessDTO
            {
                Id     = game.Id,
                Number = game.Number
            };

            Assert.Throws <GameException>(() => gameService.TryGuesst(guess));
        }
Esempio n. 12
0
        public void TryGuessNumber_HitOnFirstTry()
        {
            var game = new NewGameDTO().ToNewGameModel();

            game.Id = "ABCDE";

            var gameService = GetSampleGameService(game);

            var result = gameService.TryGuesst(new GuessDTO
            {
                Id     = game.Id,
                Number = game.Number
            });

            Assert.Equal(Domian.Enums.GameStatus.won, result.Status);
            Assert.Equal(game.Attempts - 1, game.AttemptsLeft);
            Assert.Equal(game.Number, result.Number);
            Assert.Equal(3, result.Place);
        }
Esempio n. 13
0
        public void NewGameDTOToNewGameModelPass()
        {
            var newGame = new NewGameDTO
            {
                PlayerName = "Adam",
                Attempts   = 3,
                From       = 4,
                To         = 8
            }.ToNewGameModel();

            var newGameExpected = new Game
            {
                PlayerName      = "Adam",
                Attempts        = 3,
                AttemptsLeft    = 3,
                From            = 4,
                To              = 8,
                Status          = Domian.Enums.GameStatus.pending,
                LastAttemptDate = newGame.LastAttemptDate,
                Number          = newGame.Number
            };

            Assert.Equal(newGame, newGameExpected);
        }
Esempio n. 14
0
 public bool CreateGame(NewGameDTO newGameDTO)
 {
     return(CreatePair(newGameDTO) > 0);
 }
Esempio n. 15
0
        public IHttpActionResult PostGame(NewGameDTO game)
        {
            if (ModelState.IsValid)
            {
                ICollection <string> genrelist  = game.Genres.Split(new[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                ICollection <string> taglist    = game.Tags.Split(new[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                ICollection <Genre>  finalgenre = new Collection <Genre>();
                ICollection <Tag>    finaltag   = new Collection <Tag>();

                Game newgame = new Game();
                newgame.Name           = game.Name;
                newgame.Price          = Convert.ToDecimal(game.Price);
                newgame.ReleaseDate    = game.ReleaseDate;
                newgame.InventoryCount = game.InventoryCount;

                foreach (string genrecheck in genrelist)
                {
                    if (duplicate_genre_check(genrecheck) != 0)
                    {
                        finalgenre.Add(matching_genre(genrecheck));
                    }
                    else
                    {
                        finalgenre.Add(new Genre
                        {
                            Name = genrecheck
                        }
                                       );
                    }
                }

                foreach (string tagcheck in taglist)
                {
                    if (duplicate_tag_check(tagcheck) != 0)
                    {
                        finaltag.Add(matching_tag(tagcheck));
                    }
                    else
                    {
                        finaltag.Add(new Tag
                        {
                            Name = tagcheck
                        }
                                     );
                    }
                }
                newgame.Genre = finalgenre;
                newgame.Tags  = finaltag;
                db.Games.Add(newgame);
                db.SaveChanges();

                //LOCATION
                IHttpActionResult   response;
                HttpResponseMessage responseMsg = new HttpResponseMessage(HttpStatusCode.OK);
                responseMsg.Content = new StringContent("Game added successfully. ID : " + newgame.Id);
                //string uri = Url.Link("GetGamesById", new { id = newgame.Id });
                //responseMsg.Headers.Location = new Uri(uri);
                response = ResponseMessage(responseMsg);
                return(response);
            }

            return(BadRequest());
        }
Esempio n. 16
0
        public IActionResult New([FromBody] NewGameDTO newgame)
        {
            var id = gameService.AddGame(newgame);

            return(Created("", id.ToString()));
        }
Esempio n. 17
0
 public ActionResult <int> Post([FromBody] NewGameDTO dto)
 {
     return(Ok(GameService.CreateGame(dto)));
 }