Sha256: 5b622813b03260cbd396fb704443dba78923ee0418a68302d50d08f413e6f6f3
Contents?: true
Size: 1.33 KB
Versions: 32
Compression:
Stored size: 1.33 KB
Contents
module Spec module Mocks class ArgumentExpectation attr_reader :args def initialize(args, &block) @args = args @constraints_block = block if ArgumentConstraints::AnyArgsConstraint === args.first @match_any_args = true elsif ArgumentConstraints::NoArgsConstraint === args.first @constraints = [] else @constraints = args.collect {|arg| constraint_for(arg)} end end def constraint_for(arg) return ArgumentConstraints::MatcherConstraint.new(arg) if is_matcher?(arg) return ArgumentConstraints::RegexpConstraint.new(arg) if arg.is_a?(Regexp) return ArgumentConstraints::EqualityProxy.new(arg) end def is_matcher?(obj) return obj.respond_to?(:matches?) && obj.respond_to?(:description) end def args_match?(given_args) match_any_args? || constraints_block_matches?(given_args) || constraints_match?(given_args) end def constraints_block_matches?(given_args) @constraints_block ? @constraints_block.call(*given_args) : nil end def constraints_match?(given_args) @constraints == given_args end def match_any_args? @match_any_args end end end end
Version data entries
32 entries across 32 versions & 6 rubygems