Class Spec::Mocks::MessageExpectation
In: lib/spec/mocks/message_expectation.rb
Parent: BaseExpectation

Methods

Public Instance methods

[Source]

     # File lib/spec/mocks/message_expectation.rb, line 192
192:       def advise(args, block)
193:         similar_messages << args
194:       end

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # File lib/spec/mocks/message_expectation.rb, line 210
210:       def exactly(n)
211:         set_expected_received_count :exactly, n
212:         self
213:       end

[Source]

     # 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

[Source]

     # 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

[Source]

     # File lib/spec/mocks/message_expectation.rb, line 172
172:       def ignoring_args?
173:         @expected_received_count == :any
174:       end

[Source]

     # 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

[Source]

     # 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

[Source]

     # File lib/spec/mocks/message_expectation.rb, line 184
184:       def matches_exact_count?
185:         @expected_received_count == @actual_received_count
186:       end

[Source]

     # 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

[Source]

     # File lib/spec/mocks/message_expectation.rb, line 260
260:       def negative_expectation_for?(sym)
261:         return false
262:       end

[Source]

     # File lib/spec/mocks/message_expectation.rb, line 236
236:       def never
237:         @expected_received_count = 0
238:         self
239:       end

[Source]

     # 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

[Source]

     # 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

[Source]

     # File lib/spec/mocks/message_expectation.rb, line 188
188:       def similar_messages
189:         @similar_messages ||= []
190:       end

[Source]

     # File lib/spec/mocks/message_expectation.rb, line 225
225:       def times(&block)
226:         @method_block = block if block
227:         self
228:       end

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

Protected Instance methods

[Source]

     # 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

[Validate]