public void InitTests()
        {
            var engine = new Game(4);
            engine.Init();

            Assert.AreEqual(4, engine.GetPlayers().Count);
            Assert.AreEqual(7, engine.GetPlayerHand(0).Count);
        }
        public void PlayGameCardsPlayedTest()
        {
            var engine = new Game(4);
            engine.Init();

            engine.SimulateGame();

            var players = engine.GetPlayers();
            for (int i = 0; i < players.Count; i++)
                Assert.AreEqual(6, players[i].PlayedCards.Count);
        }
        public void CalculateScoreTest()
        {
            var engine = new Game(4);
            engine.Init();

            engine.SimulateGame();

            var players = engine.GetPlayers();
            for (int i = 0; i < players.Count; i++)
            {
                Assert.Greater(players[i].FinalVictoryPoints, 0, String.Format("User {0} has 0 points of victory", i));
            }
        }
        public void SwapCardsTest()
        {
            var engine = new Game(4);
            engine.Init();

            List<Card> initialCards_1 = new List<Card>(engine.GetPlayerHand(1));

            engine.PlayRound(1);

            Assert.AreEqual(6, engine.GetPlayerHand(0).Count);

            var players = engine.GetPlayers();
            for(int i = 0; i < players.Count; i++)
                Assert.AreEqual(1, players[i].PlayedCards.Count);

            Assert.AreEqual(6, players[1].Hand.Count);
            List<Card> initialCards = new List<Card>(players[0].Hand);
            initialCards.Add(players[1].PlayedCards.First());

            var areEqual1 = Card.HandsAreEqual(initialCards_1, initialCards);
            Assert.AreEqual(true, areEqual1);
        }