Added tests for previously untested effects/values

This commit is contained in:
Alex Vasile 2022-10-09 21:51:51 -03:00
parent beec1f30c5
commit 10ac777a28
2 changed files with 109 additions and 0 deletions

View file

@ -0,0 +1,28 @@
package org.mage.test.cards.single.ema;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
public class DeathriteShamanTest extends CardTestPlayerBase {
// {T}: Exile target land card from a graveyard. Add one mana of any color.
// {B}, {T}: Exile target instant or sorcery card from a graveyard. Each opponent loses 2 life.
// {G}, {T}: Exile target creature card from a graveyard. You gain 2 life.
private static final String deathriteShaman = "Deathrite Shaman";
/**
* Check that the first ability uses the stack (and that the dynamic value works)
*/
@Test
public void manaAbility() {
addCard(Zone.BATTLEFIELD, playerA, deathriteShaman);
addCard(Zone.GRAVEYARD, playerA, "Island");
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Exile");
checkStackSize("Shaman's ability should be on the stack", 1, PhaseStep.PRECOMBAT_MAIN, playerA, 1);
setStopAt(1, PhaseStep.PRECOMBAT_MAIN);
execute();
}
}

View file

@ -0,0 +1,81 @@
package org.mage.test.cards.triggers;
import mage.cards.Card;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import org.junit.Assert;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
/**
* @author Alex-Vasile
*/
public class GodEternalDiesTriggeredAbilityTest extends CardTestPlayerBase {
// When God-Eternal Bontu dies or is put into exile from the battlefield,
// you may put it into its owners library third from the top.
private static final String godEternalBontu = "God-Eternal Bontu";
/**
* Test that the ability triggers for dying.
*/
@Test
public void dyingTriggers() {
addCard(Zone.HAND, playerA, "Murder");
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 3);
addCard(Zone.BATTLEFIELD, playerA, godEternalBontu);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Murder", godEternalBontu);
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerA, godEternalBontu, 0);
assertGraveyardCount(playerA, godEternalBontu, 0);
Card card = currentGame.getCard(playerA.getLibrary().getCardList().get(2));
Assert.assertEquals(card.getName(), godEternalBontu);
}
/**
* Test that the ability triggers for exiling.
*/
@Test
public void exilingTriggers() {
addCard(Zone.HAND, playerA, "Anguished Unmaking");
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 2);
addCard(Zone.BATTLEFIELD, playerA, "Plains");
addCard(Zone.BATTLEFIELD, playerA, godEternalBontu);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Anguished Unmaking", godEternalBontu);
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerA, godEternalBontu, 0);
assertExileCount(playerA, godEternalBontu, 0);
Card card = currentGame.getCard(playerA.getLibrary().getCardList().get(2));
Assert.assertEquals(card.getName(), godEternalBontu);
}
/**
* Test that the ability does not trigger for bouncing
*/
@Test
public void bounceDoesNotTrigger() {
// {1}{U}
// Return target creature to its owners hand.
// You may have Shapeshifters you control become copies of that creature until end of turn.
addCard(Zone.HAND, playerA, "Absorb Identity");
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
addCard(Zone.BATTLEFIELD, playerA, godEternalBontu);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Absorb Identity", godEternalBontu);
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerA, godEternalBontu, 0);
assertHandCount(playerA, godEternalBontu, 1);
assertLibraryCount(playerA, godEternalBontu, 0);
}
}