# File lib/mspec/mocks/mock.rb, line 120
120:   def self.verify_call(obj, sym, *args, &block)
121:     compare = *args
122:     if (behaves_like_ruby_1_9 = *[])
123:       compare = compare.first if compare.length <= 1
124:     end
125: 
126:     key = replaced_key obj, sym
127:     [mocks, stubs].each do |proxies|
128:       proxies[key].each do |proxy|
129:         pass = case proxy.arguments
130:         when :any_args
131:           true
132:         when :no_args
133:           compare.nil?
134:         else
135:           proxy.arguments == compare
136:         end
137: 
138:         if proxy.yielding?
139:           if block
140:             proxy.yielding.each do |args_to_yield|
141:               if block.arity == -1 || block.arity == args_to_yield.size
142:                 block.call(*args_to_yield)
143:               else
144:                 SpecExpectation.fail_with(
145:                   "Mock '#{name_or_inspect obj}' asked to yield " \
146:                   "|#{proxy.yielding.join(', ')}| on #{sym}\n",
147:                   "but a block with arity #{block.arity} was passed")
148:               end
149:             end
150:           else
151:             SpecExpectation.fail_with(
152:               "Mock '#{name_or_inspect obj}' asked to yield " \
153:               "|[#{proxy.yielding.join('], [')}]| on #{sym}\n",
154:               "but no block was passed")
155:           end
156:         end
157: 
158:         if pass
159:           proxy.called
160: 
161:           if proxy.raising?
162:             raise proxy.raising
163:           else
164:             return proxy.returning
165:           end
166:         end
167:       end
168:     end
169: 
170:     if sym.to_sym == :respond_to?
171:       mock_respond_to? obj, compare
172:     else
173:       SpecExpectation.fail_with("Mock '#{name_or_inspect obj}': method #{sym}\n",
174:                             "called with unexpected arguments (#{Array(compare).join(' ')})")
175:     end
176:   end