package org.mage.test.cards.abilities.lose;
import mage.abilities.keyword.FlyingAbility;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import mage.game.permanent.Permanent;
import org.junit.Assert;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
/**
*
* @author LevelX2
*/
public class LoseAbilityByEquipmentTest extends CardTestPlayerBase {
/**
* Tests that gaining flying by and after that losing flying by eqipments results in not have flying
*/
@Test
public void testGainVsLoseByEquipmentAbility() {
addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion");
addCard(Zone.BATTLEFIELD, playerA, "Plains", 3);
addCard(Zone.BATTLEFIELD, playerA, "Island", 4);
addCard(Zone.HAND, playerA, "Magebane Armor"); // loses Flying
addCard(Zone.HAND, playerA, "Cobbled Wings"); // gives Flying
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Magebane Armor");
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Cobbled Wings");
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Equip {1}", "Silvercoat Lion"); // give Flying
activateAbility(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Equip {2}", "Silvercoat Lion"); // lose Flying
setStopAt(3, PhaseStep.END_TURN);
execute();
assertLife(playerA, 20);
Permanent silvercoatLion = getPermanent("Silvercoat Lion", playerA.getId());
Assert.assertNotNull(silvercoatLion);
Assert.assertEquals("Silvercoat Lion equipments", 2, silvercoatLion.getAttachments().size());
Assert.assertEquals("Silvercoat Lion power",4, silvercoatLion.getPower().getValue());
Assert.assertEquals("Silvercoat Lion toughness",6, silvercoatLion.getToughness().getValue());
// should NOT have flying
Assert.assertFalse("Silvercoat Lion has flying but shouldn't have",silvercoatLion.getAbilities().contains(FlyingAbility.getInstance()));
}
}