From 97bfad470dcd5f6c08148b076d9028e304c7d9ad Mon Sep 17 00:00:00 2001 From: drmDev <dmontur1@gmail.com> Date: Mon, 28 Mar 2016 12:09:08 -0400 Subject: [PATCH] Tests for reported bug TheGitrogMonster not triggering on lands grave --- .../single/soi/TheGitrogMonsterTest.java | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 Mage.Tests/src/test/java/org/mage/test/cards/single/soi/TheGitrogMonsterTest.java diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/soi/TheGitrogMonsterTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/soi/TheGitrogMonsterTest.java new file mode 100644 index 0000000000..6327a43e62 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/soi/TheGitrogMonsterTest.java @@ -0,0 +1,77 @@ +package org.mage.test.cards.single.soi; + +import java.util.Set; +import mage.cards.Card; +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * 3BG + Legendary Creature - Frog Horror + Deathtouch + + At the beginning of your upkeep, sacrifice The Gitrog Monster unless you sacrifice a land. + + You may play an additional land on each of your turns. + + Whenever one or more land cards are put into your graveyard from anywhere, draw a card. + * + * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) + */ +public class TheGitrogMonsterTest extends CardTestPlayerBase { + + /** + * Basic sacrifice test when no lands are present + */ + @Test + public void noLandsSacrificeGitrog() { + + addCard(Zone.HAND, playerA, "The Gitrog Monster", 1); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 3); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 2); + + addCard(Zone.HAND, playerB, "Armageddon", 1); // destroy all lands + addCard(Zone.BATTLEFIELD, playerB, "Plains", 4); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "The Gitrog Monster"); + castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Armageddon"); + + setStopAt(3, PhaseStep.DRAW); + execute(); + + Set<Card> hand = playerA.getHand().getCards(currentGame); + assertGraveyardCount(playerA, "Swamp", 3); + assertGraveyardCount(playerA, "Forest", 2); + assertGraveyardCount(playerA, "The Gitrog Monster", 1); + assertGraveyardCount(playerB, "Plains", 4); + assertGraveyardCount(playerB, "Armageddon", 1); + assertPermanentCount(playerA, "The Gitrog Monster", 0); + assertHandCount(playerA, 6); // 1 for turn, 5 more for lands that hit the grave + } + + /** + * Basic sacrifice test when there is a land + */ + @Test + public void hasLandsSacrificeLand() { + + addCard(Zone.HAND, playerA, "The Gitrog Monster", 1); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 3); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 2); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "The Gitrog Monster"); + + // on 3rd turn during upkeep opt to sacrifice a land + setChoice(playerA, "Yes"); + addTarget(playerA, "Swamp"); + setStopAt(3, PhaseStep.DRAW); + execute(); + + Set<Card> hand = playerA.getHand().getCards(currentGame); + assertGraveyardCount(playerA, "Swamp", 1); + assertPermanentCount(playerA, "The Gitrog Monster", 1); + assertHandCount(playerA, 2); // 1 for turn, 1 more for land sacrificed + } +}