public void CheckApplyCardParams()
        {
            gm = GameControllerTestHelper.InitDemoGame();
            GameControllerTestHelper.useCard(2, gm);
            var playerParams = gm.GetPlayerParams(SelectPlayer.First);


            Assert.AreEqual(playerParams[Attributes.Wall], 5 - 4, "Не правильно применен параметр PlayerWall");
            Assert.AreEqual(playerParams[Attributes.Tower], 10 - 8, "Не правильно применен параметр PlayerTower");
            Assert.AreEqual(playerParams[Attributes.DiamondMines], 1 + 2, "Не правильно применен параметр PlayerDiamondMines");
            Assert.AreEqual(playerParams[Attributes.Menagerie], 1 + 3, "Не правильно применен параметр PlayerMenagerie");
            Assert.AreEqual(playerParams[Attributes.Colliery], 1 + 4, "Не правильно применен параметр PlayerColliery");
            Assert.AreEqual(playerParams[Attributes.Diamonds], 5 + 11 + 3, "Не правильно применен параметр PlayerDiamonds");
            Assert.AreEqual(playerParams[Attributes.Animals], 5 + 12 + 4 - 5, "Не правильно применен параметр PlayerAnimals");
            Assert.AreEqual(playerParams[Attributes.Rocks], 5 + 13 + 5, "Не правильно применен параметр PlayerRocks");

            playerParams = gm.GetPlayerParams(SelectPlayer.Second);
            Assert.AreEqual(playerParams[Attributes.Wall], 5 - 4, "Не правильно применен параметр EnemyWall");
            Assert.AreEqual(playerParams[Attributes.Tower], 10 - 8, "Не правильно применен параметр EnemyTower");
            Assert.AreEqual(playerParams[Attributes.DiamondMines], 1 + 2, "Не правильно применен параметр EnemyDiamondMines");
            Assert.AreEqual(playerParams[Attributes.Menagerie], 1 + 3, "Не правильно применен параметр EnemyMenagerie");
            Assert.AreEqual(playerParams[Attributes.Colliery], 1 + 4, "Не правильно применен параметр EnemyColliery");
            Assert.AreEqual(playerParams[Attributes.Diamonds], 5 + 11, "Не правильно применен параметр EnemyDiamonds");
            Assert.AreEqual(playerParams[Attributes.Animals], 5 + 12, "Не правильно применен параметр EnemyAnimals");
            Assert.AreEqual(playerParams[Attributes.Rocks], 5 + 13, "Не правильно применен параметр EnemyRocks");
        }
 public void CheckApplyEnemyDirectDamage()
 {
     gm = GameControllerTestHelper.InitDemoGame();
     GameControllerTestHelper.useCard(3, gm);
     Assert.AreEqual(gm.GetPlayerParams(SelectPlayer.Second)[Attributes.Wall], 0, "Не правильно применен параметр EnemyDirectDamage");
     Assert.AreEqual(gm.GetPlayerParams(SelectPlayer.Second)[Attributes.Tower], 0, "Не правильно применен параметр EnemyDirectDamage");
 }
        public void CheckAddDiamonds()
        {
            gm = GameControllerTestHelper.InitDemoGame(2);
            GameControllerTestHelper.useCard(6, gm);
            var playerParams = gm.GetPlayerParams(SelectPlayer.First);

            Assert.AreEqual(playerParams[Attributes.Diamonds], 5 + 11 + 1, "Не правильно применен параметр PlayerDiamonds");
        }
        public void PlayerMustWin()
        {
            gm = GameControllerTestHelper.InitDemoGame();
            GameControllerTestHelper.useCard(1, gm);

            Assert.AreEqual(gm.GetPlayerParams(SelectPlayer.Second)[Attributes.Tower], 0, "Башня врага должна быть уничтожена");
            Assert.AreEqual(gm.Status, CurrentAction.UpdateStatHuman, "Текущий статус должен быть равным обновлению статистики игрока");

            gm.SendGameNotification(new Dictionary <string, object>()
            {
                { "CurrentAction", CurrentAction.EndHumanMove }
            });
            Assert.AreEqual(gm.Winner, "Human", "Игрок не может проиграть!");
        }