     describe '.getOptions', ->
       it 'handles false result from getNextOption', ->
         state = { args: 'testing' }
-        sinon.stub @giphy, 'getNextOption', (s) -> false
+        @fakes.stub @giphy, 'getNextOption', (s) -> false
         @giphy.getOptions state
         @giphy.getNextOption.should.be.called.once
         @giphy.getNextOption.should.be.calledWith state
-        @giphy.getNextOption.restore()
         should.exist state.options
         state.options.should.eql {}
 
       it 'handles true then false result from getNextOption', ->
         state = { args: 'testing' }
         calls = 2
-        sinon.stub @giphy, 'getNextOption', (state) -> (calls = calls - 1) > 0
+        @fakes.stub @giphy, 'getNextOption', (state) -> (calls = calls - 1) > 0
         @giphy.getOptions state
         @giphy.getNextOption.should.be.called.twice
         @giphy.getNextOption.should.be.calledWith state
-        @giphy.getNextOption.restore()
         should.exist state.options
         state.options.should.eql {}
 

        result.should.be.eql 'result'

      it 'calls the callback with a multiple value collection', ->
        callback = sinon.stub().returns 'result'
        result = @giphy.getRandomResult [ 'testing1', 'testing2' ], callback
        callback.should.have.been.called.once
        callback.should.have.been.calledWith sinon.match('testing1').or sinon.match('testing2')


    describe '.getRandomResult', ->
      it 'calls the callback with a single value collection', ->
        callback = @fakes.stub().returns 'result'
        result = @giphy.getRandomResult [ 'testing' ], callback
        callback.should.have.been.called.once
        callback.should.have.been.calledWith 'testing'
