public void DontBeliveMoveTest() { var players = ProvideGameTablePlayers(3); var cardsPack = new CardsPack36(); var game = new Game(cardsPack, players); game.Start(); var mover = game.Players.First(p => p.Player.Id == game.CurrentMover.Id); var cardsCount = mover.Cards.Count; game.MakeFirstMove(new FirstMove(mover.Cards.Take(4).ToList(), PlayingCardRank.Ten, mover.Player.Id)); var previousMover = game.Players.First(p => p.Player.Id == game.CurrentMover.Id); cardsCount = previousMover.Cards.Count; var cards = previousMover.Cards.Take(3).ToList(); game.MakeBeleiveMove(new BelieveMove(cards, previousMover.Player.Id)); mover = game.Players.First(p => p.Player.Id == game.CurrentMover.Id); cardsCount = mover.Cards.Count; game.MakeDontBeleiveMove(new DontBelieveMove(cards.First().Id, mover.Player.Id), out var takedLoserCards, out Guid loserId); if (cards.First().Rank == PlayingCardRank.Ten) { Assert.Equal(mover.Player.Id, loserId); } else { Assert.Equal(previousMover.Player.Id, loserId); } }
public void CreateGameTest() { var players = ProvideGameTablePlayers(3); var cardsPack = new CardsPack36(); var game = new Game(cardsPack, players); Assert.NotEmpty(game.Players); Assert.False(game.IsStarted); Assert.False(game.IsEnded); Assert.Null(game.CurrentRound); Assert.Null(game.CurrentMover); }
public void CreateCardPackTest() { CardsPack cardsPack = new CardsPack36(); Assert.Equal(36, cardsPack.Count()); cardsPack = new CardsPack52(); Assert.Equal(52, cardsPack.Count()); var cards = cardsPack.TakeMany(cardsPack.Count()); Assert.NotNull(cards); Assert.NotEmpty(cards); // Есть ли карты с одинаковыми идентификаторами Assert.Empty(cards.GroupBy(c => c.Id).Where(g => g.Count() > 1)); }
public void FirstMoveTest() { var players = ProvideGameTablePlayers(3); var cardsPack = new CardsPack36(); var game = new Game(cardsPack, players); game.Start(); var mover = game.Players.First(p => p.Player.Id == game.CurrentMover.Id); var cardsCount = mover.Cards.Count; game.MakeFirstMove(new FirstMove(mover.Cards.Take(4).ToList(), PlayingCardRank.Ten, mover.Player.Id)); Assert.Equal(cardsCount - 4, mover.Cards.Count); Assert.NotEqual(mover.Player.Id, game.CurrentMover.Id); Assert.Throws <TrueFalseGameException>(() => { game.MakeFirstMove(new FirstMove(mover.Cards.Take(4).ToList(), PlayingCardRank.Ten, game.CurrentMover.Id)); }); }
public void StartGameTest() { var players = ProvideGameTablePlayers(3); var cardsPack = new CardsPack36(); var game = new Game(cardsPack, players); game.Start(); Assert.True(game.IsStarted); Assert.False(game.IsEnded); Assert.NotNull(game.CurrentMover); Assert.NotNull(game.CurrentRound); var mover = game.Players.First(p => p.Priority == game.Players.Min(pp => pp.Priority)); Assert.Equal(mover.Player.Id, game.CurrentMover.Id); foreach (var player in game.Players) { Assert.NotEmpty(player.Cards); } }