public async Task GameAutomation_OnlyPlayer1ThrowsAndWins() { string gameId = ""; await _apiClient.CreateGame(gameId, "Jack", "Kevin").ConfigureAwait(false); Thread.Sleep(1500); List <int> dartThrows = new List <int> { 20, 19, 18, 17, 16, 15, 25 }; // throw a single 20 await _apiClient.DartThrow(gameId, "Jack", 20, 1).ConfigureAwait(false); Thread.Sleep(1500); foreach (int val in dartThrows) { // throw triples of each await _apiClient.DartThrow(gameId, "Jack", val, 3).ConfigureAwait(false); Thread.Sleep(1500); } // get the game and verify GameModelResponse game = await _apiClient.GetGameById(gameId).ConfigureAwait(false); game.Id.Should().Be(gameId); game.HasWinner.Should().BeTrue(); game.Player1.Name.Should().Be("Jack"); game.Player2.Name.Should().Be("Kevin"); game.Player1.IsWinner.Should().BeTrue(); game.Player2.IsWinner.Should().BeFalse(); game.Player1.Score.Should().Be(20); game.Player2.Score.Should().Be(0); game.ThrowHistory.Count.Should().Be(8); }
public GameViewModel(GameModelResponse model) { Player1 = new PlayerViewModel(model.ThrowHistory.Where(x => x.Player == model.Player1.Name)) { IsWinner = model.Player1.IsWinner, Name = model.Player1.Name, Score = model.Player1.Score }; Player2 = new PlayerViewModel(model.ThrowHistory.Where(x => x.Player == model.Player2.Name)) { IsWinner = model.Player2.IsWinner, Name = model.Player2.Name, Score = model.Player2.Score }; HasWinner = model.HasWinner; }