| Class | Spec::Mocks::MessageExpectation |
| In: |
lib/spec/mocks/message_expectation.rb
|
| Parent: | BaseExpectation |
# File lib/spec/mocks/message_expectation.rb, line 192
192: def advise(args, block)
193: similar_messages << args
194: end
# File lib/spec/mocks/message_expectation.rb, line 230
230: def any_number_of_times(&block)
231: @method_block = block if block
232: @expected_received_count = :any
233: self
234: end
# File lib/spec/mocks/message_expectation.rb, line 215
215: def at_least(n)
216: set_expected_received_count :at_least, n
217: self
218: end
# File lib/spec/mocks/message_expectation.rb, line 220
220: def at_most(n)
221: set_expected_received_count :at_most, n
222: self
223: end
# File lib/spec/mocks/message_expectation.rb, line 210
210: def exactly(n)
211: set_expected_received_count :exactly, n
212: self
213: end
# File lib/spec/mocks/message_expectation.rb, line 167
167: def expected_messages_received?
168: ignoring_args? || matches_exact_count? ||
169: matches_at_least_count? || matches_at_most_count?
170: end
# File lib/spec/mocks/message_expectation.rb, line 196
196: def generate_error
197: if similar_messages.empty?
198: @error_generator.raise_expectation_error(@sym, @expected_received_count, @actual_received_count, *@args_expectation.args)
199: else
200: @error_generator.raise_unexpected_message_args_error(self, *@similar_messages.first)
201: end
202: end
# File lib/spec/mocks/message_expectation.rb, line 172
172: def ignoring_args?
173: @expected_received_count == :any
174: end
# File lib/spec/mocks/message_expectation.rb, line 176
176: def matches_at_least_count?
177: @at_least && @actual_received_count >= @expected_received_count
178: end
# File lib/spec/mocks/message_expectation.rb, line 180
180: def matches_at_most_count?
181: @at_most && @actual_received_count <= @expected_received_count
182: end
# File lib/spec/mocks/message_expectation.rb, line 184
184: def matches_exact_count?
185: @expected_received_count == @actual_received_count
186: end
# File lib/spec/mocks/message_expectation.rb, line 154
154: def matches_name_but_not_args(sym, args)
155: @sym == sym and not @args_expectation.check_args(args)
156: end
# File lib/spec/mocks/message_expectation.rb, line 260
260: def negative_expectation_for?(sym)
261: return false
262: end
# File lib/spec/mocks/message_expectation.rb, line 236
236: def never
237: @expected_received_count = 0
238: self
239: end
# File lib/spec/mocks/message_expectation.rb, line 241
241: def once(&block)
242: @method_block = block if block
243: @expected_received_count = 1
244: self
245: end
# File lib/spec/mocks/message_expectation.rb, line 253
253: def ordered(&block)
254: @method_block = block if block
255: @order_group.register(self)
256: @ordered = true
257: self
258: end
# File lib/spec/mocks/message_expectation.rb, line 188
188: def similar_messages
189: @similar_messages ||= []
190: end
# File lib/spec/mocks/message_expectation.rb, line 225
225: def times(&block)
226: @method_block = block if block
227: self
228: end
# File lib/spec/mocks/message_expectation.rb, line 247
247: def twice(&block)
248: @method_block = block if block
249: @expected_received_count = 2
250: self
251: end
# File lib/spec/mocks/message_expectation.rb, line 158
158: def verify_messages_received
159: return if expected_messages_received?
160:
161: generate_error
162: rescue Spec::Mocks::MockExpectationError => error
163: error.backtrace.insert(0, @expected_from)
164: Kernel::raise error
165: end
# File lib/spec/mocks/message_expectation.rb, line 204
204: def with(*args, &block)
205: @method_block = block if block
206: @args_expectation = ArgumentExpectation.new(args)
207: self
208: end
# File lib/spec/mocks/message_expectation.rb, line 265
265: def set_expected_received_count(relativity, n)
266: @at_least = (relativity == :at_least)
267: @at_most = (relativity == :at_most)
268: @expected_received_count = case n
269: when Numeric
270: n
271: when :once
272: 1
273: when :twice
274: 2
275: end
276: end