       @team2.first().stages.specialAttack.should.equal -2
 
   describe "Torment", ->
+    shared.shouldDoNoDamage("Torment")
+    shared.shouldFailIfUsedTwice("Torment")
+
     it "prevents the target from using its last move", ->
       shared.create.call(this)
 

      @controller.makeMove(@player2, 'tackle')

      @team1.hasAttachment(Attachment.Wish).should.be.false

    it "fails if the user already used Wish", ->
      shared.create.call(this)
      mock = sinon.mock(moves['wish'])
      mock.expects('fail').once()

      @battle.performMove(@id1, moves['wish'])
      @battle.performMove(@id1, moves['wish'])

      mock.restore()
      mock.verify()

  describe "counter", ->
    it "returns double the damage if attacked by a physical move", ->

      @controller.makeMove(@player2, "Splash")

      @team2.hasAttachment(Attachment.StealthRock).should.be.true

    it "does damage to pokemon switching in according to type", ->
      shared.create.call this,
