package org.mage.test.cards.watchers;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
/**
*
* @author BetaSteward
*/
public class SiftThroughSandsTest extends CardTestPlayerBase {
/*
* Sift Through Sands
* Instant — Arcane, 1UU (3)
* Draw two cards, then discard a card.
* If you've cast a spell named Peer Through Depths and a spell named Reach
* Through Mists this turn, you may search your library for a card named
* The Unspeakable, put it onto the battlefield, then shuffle your library.
*
* Peer Through Depths
* Instant — Arcane, 1U (2)
* Look at the top five cards of your library. You may reveal an instant or
* sorcery card from among them and put it into your hand. Put the rest on
* the bottom of your library in any order.
*
* Reach Through Mists
* Instant — Arcane, U (1)
* Draw a card.
*
* The Unspeakable
* Legendary Creature — Spirit 6/7, 6UUU (9)
* Flying, trample
* Whenever The Unspeakable deals combat damage to a player, you may return
* target Arcane card from your graveyard to your hand.
*
*/
// TODO: This test fails sometimes if building the complete test project
// The cause is still unknown
// test that The Unspeakable is put onto the battlefield
@Test
public void testTheUnspeakable() {
addCard(Zone.BATTLEFIELD, playerA, "Island", 6);
addCard(Zone.HAND, playerA, "Sift Through Sands");
addCard(Zone.HAND, playerA, "Peer Through Depths");
addCard(Zone.HAND, playerA, "Reach Through Mists");
addCard(Zone.LIBRARY, playerA, "The Unspeakable");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Reach Through Mists");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Peer Through Depths");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Sift Through Sands");
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerA, "The Unspeakable", 1);
assertHandCount(playerA, 2);
}
// TODO: This test fails sometimes if building the complete test project
// The cause is still unknown
// test that The Unspeakable is not put onto the battlefield
@Test
public void testNotTheUnspeakable() {
addCard(Zone.BATTLEFIELD, playerA, "Island", 6);
addCard(Zone.HAND, playerA, "Sift Through Sands");
addCard(Zone.HAND, playerA, "Peer Through Depths");
addCard(Zone.HAND, playerA, "Reach Through Mists");
addCard(Zone.LIBRARY, playerA, "The Unspeakable");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Reach Through Mists");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Sift Through Sands");
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerA, "The Unspeakable", 0);
assertHandCount(playerA, 3);
}
}