diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/activated/EquipAbilityTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/activated/EquipAbilityTest.java
new file mode 100644
index 0000000000..f6a41ceae1
--- /dev/null
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/activated/EquipAbilityTest.java
@@ -0,0 +1,71 @@
+package org.mage.test.cards.abilities.activated;
+
+import mage.Constants;
+import mage.game.permanent.Permanent;
+import org.junit.Assert;
+import org.junit.Test;
+import org.mage.test.serverside.base.CardTestPlayerBase;
+
+/**
+ * @author noxx
+ */
+public class EquipAbilityTest extends CardTestPlayerBase {
+
+    /**
+     * Tests equipping creature with hexproof
+     */
+    @Test
+    public void testEquipHexproof() {
+        addCard(Constants.Zone.BATTLEFIELD, playerA, "Ring of Evos Isle");
+        addCard(Constants.Zone.BATTLEFIELD, playerA, "Merfolk Spy");
+        addCard(Constants.Zone.BATTLEFIELD, playerA, "Plains");
+
+        activateAbility(1, Constants.PhaseStep.PRECOMBAT_MAIN, playerA, "Equip", "Merfolk Spy");
+
+        setStopAt(1, Constants.PhaseStep.BEGIN_COMBAT);
+        execute();
+
+        Permanent merfolk = getPermanent("Merfolk Spy", playerA);
+        Assert.assertNotNull(merfolk);
+        Assert.assertEquals(1, merfolk.getAttachments().size());
+    }
+
+    /**
+     * Tests equipping creature with shroud
+     */
+    @Test
+    public void testEquipShroud() {
+        addCard(Constants.Zone.BATTLEFIELD, playerA, "Ring of Evos Isle");
+        addCard(Constants.Zone.BATTLEFIELD, playerA, "Simic Sky Swallower");
+        addCard(Constants.Zone.BATTLEFIELD, playerA, "Plains");
+
+        activateAbility(1, Constants.PhaseStep.PRECOMBAT_MAIN, playerA, "Equip", "Simic Sky Swallower");
+
+        setStopAt(1, Constants.PhaseStep.BEGIN_COMBAT);
+        execute();
+
+        Permanent sky = getPermanent("Simic Sky Swallower", playerA);
+        Assert.assertNotNull(sky);
+        Assert.assertEquals(0, sky.getAttachments().size());
+    }
+
+    /**
+     * Tests equipping opponent's creature
+     */
+    @Test
+    public void testEquipOpponentsCreature() {
+        addCard(Constants.Zone.BATTLEFIELD, playerA, "Ring of Evos Isle");
+        addCard(Constants.Zone.BATTLEFIELD, playerB, "Llanowar Elves");
+        addCard(Constants.Zone.BATTLEFIELD, playerA, "Plains");
+
+        activateAbility(1, Constants.PhaseStep.PRECOMBAT_MAIN, playerA, "Equip", "Llanowar Elves");
+
+        setStopAt(1, Constants.PhaseStep.BEGIN_COMBAT);
+        execute();
+
+        Permanent elves = getPermanent("Llanowar Elves", playerB);
+        Assert.assertNotNull(elves);
+        Assert.assertEquals(0, elves.getAttachments().size());
+    }
+
+}
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 b1b2f4ff12..b9c50ac471 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
@@ -539,6 +539,10 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
         Assert.assertEquals("(Graveyard) Card counts are not equal (" + cardName + ")", count, actualCount);
     }
 
+    public Permanent getPermanent(String cardName, Player player) {
+        return getPermanent(cardName, player.getId());
+    }
+
     public Permanent getPermanent(String cardName, UUID controller) {
         Permanent permanent0 = null;
         int count = 0;