From a0866ef602ffe15b07f812d74b6f682800bdc81c Mon Sep 17 00:00:00 2001 From: magenoxx Date: Mon, 26 Dec 2011 13:30:59 +0400 Subject: [PATCH] RegenerateAbilityTest. Make sure AI blocks, chooses biggest creature to block and uses regenerate ability. --- .../mage/test/ai/RegenerateAbilityTest.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Mage.Tests/src/test/java/org/mage/test/ai/RegenerateAbilityTest.java diff --git a/Mage.Tests/src/test/java/org/mage/test/ai/RegenerateAbilityTest.java b/Mage.Tests/src/test/java/org/mage/test/ai/RegenerateAbilityTest.java new file mode 100644 index 00000000000..55e6b1806d6 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/ai/RegenerateAbilityTest.java @@ -0,0 +1,50 @@ +package org.mage.test.ai; + +import mage.Constants; +import mage.game.permanent.Permanent; +import org.junit.Assert; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestBase; + +/** + * Make sure AI uses regenerate ability once. + * + * @author ayratn + */ +public class RegenerateAbilityTest extends CardTestBase { + + @Test + public void testRegenerateUsage() { + addCard(Constants.Zone.BATTLEFIELD, playerA, "Quicksilver Gargantuan", 1); + addCard(Constants.Zone.BATTLEFIELD, playerA, "Thousand-legged Kami", 1); + addCard(Constants.Zone.BATTLEFIELD, playerA, "Island", 6); + addCard(Constants.Zone.BATTLEFIELD, playerB, "Slith Bloodletter"); + addCard(Constants.Zone.BATTLEFIELD, playerB, "Swamp", 4); + addCard(Constants.Zone.BATTLEFIELD, playerB, "Drowned Catacomb", 1); + addCard(Constants.Zone.BATTLEFIELD, playerB, "Crumbling Necropolis", 1); + addCard(Constants.Zone.BATTLEFIELD, playerB, "Llanowar Wastes", 1); + + execute(); + + Permanent slith = getPermanent("Slith Bloodletter", playerB.getId()); + Assert.assertNotNull("Should be alive because of Regenerate ability", slith); + + int count = 0; + int tapped = 0; + for (Permanent permanent : currentGame.getBattlefield().getAllPermanents()) { + if (permanent.getControllerId().equals(playerB.getId())) { + if (permanent.getCardType().contains(Constants.CardType.LAND)) { + count++; + if (permanent.isTapped()) { + tapped++; + } + } + } + } + Assert.assertEquals(7, count); + Assert.assertEquals(2, tapped); + + // should block 7/7 (Quicksilver Gargantuan) and allow 6/6 (Thousand-legged Kami) to attack + assertLife(playerB, 14); + } +}