Parent

Files

Mocha::Cardinality

Constants

INFINITY

Attributes

required[R]
maximum[R]

Public Class Methods

at_least(count) click to toggle source
    # File lib/mocha/cardinality.rb, line 13
13:       def at_least(count)
14:         new(count, INFINITY)
15:       end
at_most(count) click to toggle source
    # File lib/mocha/cardinality.rb, line 17
17:       def at_most(count)
18:         new(0, count)
19:       end
exactly(count) click to toggle source
    # File lib/mocha/cardinality.rb, line 9
 9:       def exactly(count)
10:         new(count, count)
11:       end
new(required, maximum) click to toggle source
    # File lib/mocha/cardinality.rb, line 30
30:     def initialize(required, maximum)
31:       @required, @maximum = required, maximum
32:     end
times(range_or_count) click to toggle source
    # File lib/mocha/cardinality.rb, line 21
21:       def times(range_or_count)
22:         case range_or_count
23:           when Range then new(range_or_count.first, range_or_count.last)
24:           else new(range_or_count, range_or_count)
25:         end
26:       end

Public Instance Methods

allowed_any_number_of_times?() click to toggle source
    # File lib/mocha/cardinality.rb, line 50
50:     def allowed_any_number_of_times?
51:       required == 0 && infinite?(maximum)
52:     end
invocations_allowed?(invocation_count) click to toggle source
    # File lib/mocha/cardinality.rb, line 34
34:     def invocations_allowed?(invocation_count)
35:       invocation_count < maximum
36:     end
mocha_inspect() click to toggle source
    # File lib/mocha/cardinality.rb, line 58
58:     def mocha_inspect
59:       if allowed_any_number_of_times?
60:         "allowed any number of times"
61:       else
62:         if required == 0 && maximum == 0
63:           "expected never"
64:         elsif required == maximum
65:           "expected exactly #{times(required)}"
66:         elsif infinite?(maximum)
67:           "expected at least #{times(required)}"
68:         elsif required == 0
69:           "expected at most #{times(maximum)}"
70:         else
71:           "expected between #{required} and #{times(maximum)}"
72:         end
73:       end
74:     end
needs_verifying?() click to toggle source
    # File lib/mocha/cardinality.rb, line 42
42:     def needs_verifying?
43:       !allowed_any_number_of_times?
44:     end
satisfied?(invocations_so_far) click to toggle source
    # File lib/mocha/cardinality.rb, line 38
38:     def satisfied?(invocations_so_far)
39:       invocations_so_far >= required
40:     end
used?(invocation_count) click to toggle source
    # File lib/mocha/cardinality.rb, line 54
54:     def used?(invocation_count)
55:       (invocation_count > 0) || (maximum == 0)
56:     end
verified?(invocation_count) click to toggle source
    # File lib/mocha/cardinality.rb, line 46
46:     def verified?(invocation_count)
47:       (invocation_count >= required) && (invocation_count <= maximum)
48:     end

Protected Instance Methods

infinite?(number) click to toggle source
    # File lib/mocha/cardinality.rb, line 89
89:     def infinite?(number)
90:       number.respond_to?(:infinite?) && number.infinite?
91:     end
times(number) click to toggle source
    # File lib/mocha/cardinality.rb, line 80
80:     def times(number)
81:       case number
82:         when 0 then "no times"
83:         when 1 then "once"
84:         when 2 then "twice"
85:         else "#{number} times"
86:       end
87:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.