Sha256: 570d22712ee92f4f3fb43cbedf3efa2e601dbca4670a339290dbfc10872c4e88
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
require 'rspec/expectations' module VerifiedDouble module Matchers extend RSpec::Matchers::DSL matcher :verify_accessor_contract do |expected| match do |actual| method_signature = ParseMethodSignature.new(expected).execute VerifiedDouble.verified_signatures_from_matchers << method_signature raise CannotHandleMultipleReturnValues if method_signature.return_values.size > 1 value = method_signature.return_values.first.as_instance actual.send "#{method_signature.method}=", value actual.send(method_signature.method) == value end end matcher :verify_reader_contract do |expected| match do |actual| method_signature = ParseMethodSignature.new(expected).execute VerifiedDouble.verified_signatures_from_matchers << method_signature raise CannotHandleMultipleReturnValues if method_signature.return_values.size > 1 actual.send(method_signature.method).is_a?(method_signature.return_values.first.value) end end class CannotHandleMultipleReturnValues < Exception; end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
verified_double-0.1.1 | lib/verified_double/matchers.rb |
verified_double-0.1.0 | lib/verified_double/matchers.rb |