Class | Mocha::Cardinality |
In: |
lib/mocha/cardinality.rb
|
Parent: | Object |
INFINITY | = | 1 / 0.0 |
maximum | [R] | |
required | [R] |
# File lib/mocha/cardinality.rb, line 30 30: def initialize(required, maximum) 31: @required, @maximum = required, maximum 32: end
# 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
# File lib/mocha/cardinality.rb, line 50 50: def allowed_any_number_of_times? 51: required == 0 && infinite?(maximum) 52: end
# File lib/mocha/cardinality.rb, line 34 34: def invocations_allowed?(invocation_count) 35: invocation_count < maximum 36: end
# 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
# File lib/mocha/cardinality.rb, line 42 42: def needs_verifying? 43: !allowed_any_number_of_times? 44: end
# File lib/mocha/cardinality.rb, line 38 38: def satisfied?(invocations_so_far) 39: invocations_so_far >= required 40: end
# File lib/mocha/cardinality.rb, line 54 54: def used?(invocation_count) 55: (invocation_count > 0) || (maximum == 0) 56: end
# File lib/mocha/cardinality.rb, line 46 46: def verified?(invocation_count) 47: (invocation_count >= required) && (invocation_count <= maximum) 48: end
# File lib/mocha/cardinality.rb, line 89 89: def infinite?(number) 90: number.respond_to?(:infinite?) && number.infinite? 91: end