diff --git a/Mage.Tests/CommanderDuel.dck b/Mage.Tests/CommanderDuel.dck new file mode 100644 index 0000000000..2999d2ef2b --- /dev/null +++ b/Mage.Tests/CommanderDuel.dck @@ -0,0 +1,73 @@ +NAME:Sworn to Darkness +1 [C14:54] Commander's Sphere +1 [C14:307] Polluted Mire +1 [C14:59] Arcane Lighthouse +1 [C14:58] Unstable Obelisk +1 [C14:149] Morkrut Banshee +1 [C14:148] Magus of the Coffers +1 [C14:147] Liliana's Reaver +1 [C14:146] Gray Merchant of Asphodel +1 [C14:145] Grave Titan +1 [C14:144] Evernight Shade +1 [C14:143] Dregs of Sorrow +1 [C14:142] Dread Return +1 [C14:141] Drana, Kalastria Bloodchief +1 [C14:140] Disciple of Bolas +1 [C14:23] Ghoulcaller Gisa +1 [C14:22] Flesh Carver +1 [C14:21] Demon of Wailing Agonies +1 [C14:61] Myriad Landscape +1 [C14:29] Raving Dead +1 [C14:28] Overseer of the Damned +1 [C14:26] Necromantic Selection +1 [C14:25] Malicious Affliction +1 [C14:24] Infernal Offering +1 [C14:159] Reaper from the Abyss +1 [C14:235] Charcoal Diamond +1 [C14:158] Read the Bones +1 [C14:157] Promise of Power +1 [C14:156] Profane Command +1 [C14:232] Burnished Hart +1 [C14:155] Pontiff of Blight +1 [C14:154] Phyrexian Gargantua +1 [C14:275] Swiftfoot Boots +1 [C14:153] Pestilence Demon +1 [C14:152] Nekrataal +1 [C14:151] Nantuko Shade +1 [C14:150] Mutilate +1 [C14:270] Sol Ring +1 [C14:31] Wake the Dead +1 [C14:30] Spoils of Blood +8 [C14:329] Swamp +8 [C14:328] Swamp +8 [C14:327] Swamp +8 [C14:326] Swamp +1 [C14:169] Victimize +1 [C14:168] Vampire Hexmage +1 [C14:245] Lashwrithe +1 [C14:167] Tragic Slip +1 [C14:288] Crypt of Agadeem +1 [C14:243] Jet Medallion +1 [C14:166] Tendrils of Corruption +1 [C14:165] Syphon Mind +1 [C14:164] Sudden Spoiling +1 [C14:285] Bojuka Bog +1 [C14:163] Skirsdag High Priest +1 [C14:284] Barren Moor +1 [C14:162] Skeletal Scrying +1 [C14:282] Worn Powerstone +1 [C14:161] Sign in Blood +1 [C14:160] Shriekmaw +1 [C14:139] Crypt Ghast +1 [C14:138] Butcher of Malakir +1 [C14:137] Bloodgift Demon +1 [C14:136] Black Sun's Zenith +1 [C14:135] Bad Moon +1 [C14:134] Annihilate +1 [C14:133] AEther Snap +1 [C14:298] Ghost Quarter +1 [C14:132] Abyssal Persecutor +1 [C14:250] Mind Stone +1 [C14:294] Everglades +1 [C14:170] Xathrid Demon +SB: 1 [C14:27] Ob Nixilis of the Black Oath diff --git a/Mage.Tests/src/test/java/org/mage/test/commander/duel/CastCommanderTest.java b/Mage.Tests/src/test/java/org/mage/test/commander/duel/CastCommanderTest.java new file mode 100644 index 0000000000..4a948571b9 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/commander/duel/CastCommanderTest.java @@ -0,0 +1,56 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package org.mage.test.commander.duel; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Ignore; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestCommanderDuelBase; + +/** + * + * @author LevelX2 + */ +public class CastCommanderTest extends CardTestCommanderDuelBase { + @Test + @Ignore + public void testFirstAbility() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 5); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ob Nixilis of the Black Oath"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertLife(playerA, 40); + assertLife(playerB, 40); + + assertPermanentCount(playerA, "Ob Nixilis of the Black Oath", 1); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/base/CardTestCommanderDuelBase.java b/Mage.Tests/src/test/java/org/mage/test/serverside/base/CardTestCommanderDuelBase.java new file mode 100644 index 0000000000..c31449aa0e --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/base/CardTestCommanderDuelBase.java @@ -0,0 +1,54 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package org.mage.test.serverside.base; + +import java.io.FileNotFoundException; +import mage.constants.MultiplayerAttackOption; +import mage.constants.RangeOfInfluence; +import mage.game.CommanderDuel; +import mage.game.Game; +import mage.game.GameException; +import org.mage.test.serverside.base.impl.CardTestPlayerAPIImpl; + +/** + * + * @author LevelX2 + */ + +public abstract class CardTestCommanderDuelBase extends CardTestPlayerAPIImpl { + + @Override + protected Game createNewGameAndPlayers() throws GameException, FileNotFoundException { + Game game = new CommanderDuel(MultiplayerAttackOption.LEFT, RangeOfInfluence.ONE, 0, 40); + + playerA = createPlayer(game, playerA, "PlayerA","CommanderDuel.dck"); + playerB = createPlayer(game, playerB, "PlayerB","CommanderDuel.dck"); + return game; + } + +} \ No newline at end of file diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java b/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java index a19f445bce..771de0af82 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/base/impl/CardTestPlayerAPIImpl.java @@ -131,15 +131,20 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement abstract protected Game createNewGameAndPlayers() throws GameException, FileNotFoundException; protected TestPlayer createPlayer(Game game, TestPlayer player, String name) throws GameException { + return createPlayer(game, player, name, "RB Aggro.dck"); + } + + protected TestPlayer createPlayer(Game game, TestPlayer player, String name, String deckName) throws GameException { player = createNewPlayer(name); player.setTestMode(true); logger.debug("Loading deck..."); - Deck deck = Deck.load(DeckImporterUtil.importDeck("RB Aggro.dck"), false, false); + Deck deck = Deck.load(DeckImporterUtil.importDeck(deckName), false, false); logger.debug("Done!"); if (deck.getCards().size() < 40) { throw new IllegalArgumentException("Couldn't load deck, deck size=" + deck.getCards().size()); } game.loadCards(deck.getCards(), player.getId()); + game.loadCards(deck.getSideboard(), player.getId()); game.addPlayer(player, deck); return player;