Sha256: 8348d439d5a5945c03db1a27237e2dcf9dd45aa4bb9d18477d16a773b7902bea
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
require 'ostruct' module ResourceSet module Testing class ActionHandlerMatchers ResponseStub = Class.new(OpenStruct) attr_reader :action, :response_stub, :failure_message def initialize(action) @action = action end def with(options, &block) @response_stub = ResponseStub.new(options) @handled_block = block self end def matches?(subject, &block) @handled_block ||= block action = subject.resources.find_action(self.action) unless action @failure_message = "expected :#{self.action} to be handled by the class." return false end status_code = response_stub.status || 200 unless action.handlers[status_code] @failure_message = "expected the #{status_code} status code to be handled by the class." return false end handled_response = action.handlers[status_code].call(response_stub) @handled_block.call(handled_response) true end end end end
Version data entries
3 entries across 3 versions & 1 rubygems