Sha256: f813fa33ded15cdb3b900390b4de5bd32721b521c397173b80f284cff1dde2f6

Contents?: true

Size: 823 Bytes

Versions: 4

Compression:

Stored size: 823 Bytes

Contents

require 'muack/error'

module Muack
  class Modifier < Struct.new(:mock, :defi)
    # Public API
    def with_any_args
      defi.args = [WithAnyArgs]
      self
    end

    # Public API
    def returns val=nil, &block
      defi.block = block || lambda{ val }
      self
    end

    # Public API
    def proxy
      defi.proxy = true
      self
    end

    # Public API
    def times number
      if mock.__mock_class == Stub
        raise StubHasNoTimes.new(object, defi, number)
      end

      if number >= 1
        (number - 1).times{ mock.__mock_defis_push(defi) }
      elsif number == 0
        mock.__mock_defis_pop(defi)
      else
        raise "What would you expect from calling a method #{number} times?"
      end
      self
    end

    # Public API
    def object
      mock.object
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
muack-0.7.3 lib/muack/modifier.rb
muack-0.7.2 lib/muack/modifier.rb
muack-0.7.1 lib/muack/modifier.rb
muack-0.7.0 lib/muack/modifier.rb