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); }
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)); }
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(); }
public void AddGame_Succes() { var gameService = GetSampleGameService(); var newGame = new NewGameDTO(); var game = gameService.AddGame(newGame); Assert.True(!string.IsNullOrEmpty(game.Id)); }
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); }
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)); }
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); }
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()); }
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)); }
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()); }
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)); }
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); }
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); }
public bool CreateGame(NewGameDTO newGameDTO) { return(CreatePair(newGameDTO) > 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()); }
public IActionResult New([FromBody] NewGameDTO newgame) { var id = gameService.AddGame(newgame); return(Created("", id.ToString())); }
public ActionResult <int> Post([FromBody] NewGameDTO dto) { return(Ok(GameService.CreateGame(dto))); }