class Grasshopper::Mock
Constants
- MessageHeard
Public Class Methods
any_params()
click to toggle source
# File lib/grasshopper/mock.rb, line 57 def self.any_params Grasshopper::Mock::AnyParams.new end
new()
click to toggle source
# File lib/grasshopper/mock.rb, line 3 def initialize @verify_next = false end
verify(mock)
click to toggle source
# File lib/grasshopper/mock.rb, line 51 def self.verify mock raise "Tried to verify a #{mock.class}" unless mock.is_a? Grasshopper::Mock mock.verify_next mock end
Public Instance Methods
method_missing(message, *args, &block)
click to toggle source
# File lib/grasshopper/mock.rb, line 11 def method_missing(message, *args, &block) request = MessageHeard.new(message, args) @requests ||= [] if @verify_next if args.first.is_a? AnyParams index = @requests.index { |heard| request.message == heard.message } else index = @requests.index { |heard| request == heard } end if index.nil? raise not_seen_exception(request) end @requests.delete_at(index || @requests.length) else record_request(request) end nil end
not_seen_exception(request)
click to toggle source
# File lib/grasshopper/mock.rb, line 31 def not_seen_exception(request) NotSeen.new("Should have seen an invocation of #{request})\n\nMessages Seen:\n#{@requests.map(&:to_s).join("\n")}") end
record_request(request)
click to toggle source
# File lib/grasshopper/mock.rb, line 35 def record_request(request) @requests << request end
verify_next()
click to toggle source
# File lib/grasshopper/mock.rb, line 7 def verify_next @verify_next = true end
verify_responds_to_heard_messages(instance)
click to toggle source
# File lib/grasshopper/mock.rb, line 39 def verify_responds_to_heard_messages(instance) @requests.each do |request| raise NotImplemented.new(request) unless instance.respond_to?(request.message) end end