Class | Mocha::Cardinality |
In: |
lib/mocha/cardinality.rb
|
Parent: | Object |
INFINITY | = | 1 / 0.0 |
maximum | [R] | |
required | [R] |
# File lib/mocha/cardinality.rb, line 32 32: def initialize(required, maximum) 33: @required, @maximum = required, maximum 34: end
# File lib/mocha/cardinality.rb, line 21 21: def times(range_or_count) 22: case range_or_count 23: when Range 24: new(range_or_count.first, range_or_count.last) 25: else 26: new(range_or_count, range_or_count) 27: end 28: end
# File lib/mocha/cardinality.rb, line 52 52: def allowed_any_number_of_times? 53: required == 0 && infinite?(maximum) 54: end
# File lib/mocha/cardinality.rb, line 36 36: def invocations_allowed?(invocation_count) 37: invocation_count < maximum 38: end
# File lib/mocha/cardinality.rb, line 60 60: def mocha_inspect 61: if allowed_any_number_of_times? 62: "allowed any number of times" 63: else 64: if required == 0 && maximum == 0 65: "expected never" 66: elsif required == maximum 67: "expected exactly #{times(required)}" 68: elsif infinite?(maximum) 69: "expected at least #{times(required)}" 70: elsif required == 0 71: "expected at most #{times(maximum)}" 72: else 73: "expected between #{required} and #{times(maximum)}" 74: end 75: end 76: end
# File lib/mocha/cardinality.rb, line 44 44: def needs_verifying? 45: !allowed_any_number_of_times? 46: end
# File lib/mocha/cardinality.rb, line 40 40: def satisfied?(invocations_so_far) 41: invocations_so_far >= required 42: end
# File lib/mocha/cardinality.rb, line 56 56: def used?(invocation_count) 57: (invocation_count > 0) || (maximum == 0) 58: end
# File lib/mocha/cardinality.rb, line 48 48: def verified?(invocation_count) 49: (invocation_count >= required) && (invocation_count <= maximum) 50: end
# File lib/mocha/cardinality.rb, line 86 86: def infinite?(number) 87: number.respond_to?(:infinite?) && number.infinite? 88: end