File: expectation_list.rb

package info (click to toggle)
libmocha-ruby 0.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 944 kB
  • ctags: 1,384
  • sloc: ruby: 7,265; makefile: 4
file content (42 lines) | stat: -rw-r--r-- 894 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
module Mocha # :nodoc:

  class ExpectationList

    def initialize
      @expectations = []
    end
    
    def add(expectation)
      @expectations << expectation
      expectation
    end
    
    def matches_method?(method_name)
      @expectations.any? { |expectation| expectation.matches_method?(method_name) }
    end
    
    def detect(method_name, *arguments)
      expectations = @expectations.reverse.select { |e| e.match?(method_name, *arguments) }
      expectation = expectations.detect { |e| e.invocations_allowed? }
      expectation || expectations.first
    end
    
    def verified?(assertion_counter = nil)
      @expectations.all? { |expectation| expectation.verified?(assertion_counter) }
    end
    
    def to_a
      @expectations
    end
    
    def to_set
      @expectations.to_set
    end
    
    def length
      @expectations.length
    end
    
  end

end