Module: RR::DoubleDefinitions::DoubleDefinition::DefinitionConstructionMethods
- Included in:
- RR::DoubleDefinitions::DoubleDefinition
- Defined in:
- lib/rr/double_definitions/double_definition.rb
Instance Method Summary collapse
- #after_call(&after_call_proc) ⇒ Object
- #any_number_of_times(&return_value_block) ⇒ Object
- #at_least(number, &return_value_block) ⇒ Object
- #at_most(number, &return_value_block) ⇒ Object
- #implemented_by(implementation) ⇒ Object
- #implemented_by_original_method ⇒ Object
- #never ⇒ Object
- #once(&return_value_block) ⇒ Object
- #ordered(&return_value_block) ⇒ Object (also: #then)
- #returns(*args, &implementation) ⇒ Object
- #times(matcher_value, &return_value_block) ⇒ Object
- #twice(&return_value_block) ⇒ Object
- #verbose(&after_call_proc) ⇒ Object
- #with(*args, &return_value_block) ⇒ Object
- #with_any_args(&return_value_block) ⇒ Object
- #with_no_args(&return_value_block) ⇒ Object
- #yields(*args, &return_value_block) ⇒ Object
Instance Method Details
#after_call(&after_call_proc) ⇒ Object
124 125 126 127 128 |
# File 'lib/rr/double_definitions/double_definition.rb', line 124 def after_call(&after_call_proc) raise ArgumentError, "after_call expects a block" unless after_call_proc @after_call_proc = after_call_proc self end |
#any_number_of_times(&return_value_block) ⇒ Object
92 93 94 95 96 |
# File 'lib/rr/double_definitions/double_definition.rb', line 92 def any_number_of_times(&return_value_block) @times_matcher = TimesCalledMatchers::AnyTimesMatcher.new install_method_callback return_value_block self end |
#at_least(number, &return_value_block) ⇒ Object
80 81 82 83 84 |
# File 'lib/rr/double_definitions/double_definition.rb', line 80 def at_least(number, &return_value_block) @times_matcher = TimesCalledMatchers::AtLeastMatcher.new(number) install_method_callback return_value_block self end |
#at_most(number, &return_value_block) ⇒ Object
86 87 88 89 90 |
# File 'lib/rr/double_definitions/double_definition.rb', line 86 def at_most(number, &return_value_block) @times_matcher = TimesCalledMatchers::AtMostMatcher.new(number) install_method_callback return_value_block self end |
#implemented_by(implementation) ⇒ Object
154 155 156 157 |
# File 'lib/rr/double_definitions/double_definition.rb', line 154 def implemented_by(implementation) @implementation = implementation self end |
#implemented_by_original_method ⇒ Object
149 150 151 152 |
# File 'lib/rr/double_definitions/double_definition.rb', line 149 def implemented_by_original_method implemented_by ORIGINAL_METHOD self end |
#never ⇒ Object
63 64 65 66 |
# File 'lib/rr/double_definitions/double_definition.rb', line 63 def never @times_matcher = TimesCalledMatchers::IntegerMatcher.new(0) self end |
#once(&return_value_block) ⇒ Object
68 69 70 71 72 |
# File 'lib/rr/double_definitions/double_definition.rb', line 68 def once(&return_value_block) @times_matcher = TimesCalledMatchers::IntegerMatcher.new(1) install_method_callback return_value_block self end |
#ordered(&return_value_block) ⇒ Object Also known as: then
104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/rr/double_definitions/double_definition.rb', line 104 def ordered(&return_value_block) raise( Errors::DoubleDefinitionError, "Double Definitions must have a dedicated Double to be ordered. " << "For example, using instance_of does not allow ordered to be used. " << "proxy the class's #new method instead." ) unless @double @ordered = true space.register_ordered_double(@double) install_method_callback return_value_block DoubleDefinitionCreatorProxy.new(double_definition_creator) end |
#returns(*args, &implementation) ⇒ Object
136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/rr/double_definitions/double_definition.rb', line 136 def returns(*args, &implementation) value = args.first if !args.empty? && implementation raise ArgumentError, "returns cannot accept both an argument and a block" end if implementation implemented_by implementation else implemented_by lambda {value} end self end |
#times(matcher_value, &return_value_block) ⇒ Object
98 99 100 101 102 |
# File 'lib/rr/double_definitions/double_definition.rb', line 98 def times(matcher_value, &return_value_block) @times_matcher = TimesCalledMatchers::TimesCalledMatcher.create(matcher_value) install_method_callback return_value_block self end |
#twice(&return_value_block) ⇒ Object
74 75 76 77 78 |
# File 'lib/rr/double_definitions/double_definition.rb', line 74 def twice(&return_value_block) @times_matcher = TimesCalledMatchers::IntegerMatcher.new(2) install_method_callback return_value_block self end |
#verbose(&after_call_proc) ⇒ Object
130 131 132 133 134 |
# File 'lib/rr/double_definitions/double_definition.rb', line 130 def verbose(&after_call_proc) @verbose = true @after_call_proc = after_call_proc self end |
#with(*args, &return_value_block) ⇒ Object
45 46 47 48 49 |
# File 'lib/rr/double_definitions/double_definition.rb', line 45 def with(*args, &return_value_block) @argument_expectation = Expectations::ArgumentEqualityExpectation.new(*args) install_method_callback return_value_block self end |
#with_any_args(&return_value_block) ⇒ Object
51 52 53 54 55 |
# File 'lib/rr/double_definitions/double_definition.rb', line 51 def with_any_args(&return_value_block) @argument_expectation = Expectations::AnyArgumentExpectation.new install_method_callback return_value_block self end |
#with_no_args(&return_value_block) ⇒ Object
57 58 59 60 61 |
# File 'lib/rr/double_definitions/double_definition.rb', line 57 def with_no_args(&return_value_block) @argument_expectation = Expectations::ArgumentEqualityExpectation.new() install_method_callback return_value_block self end |
#yields(*args, &return_value_block) ⇒ Object
118 119 120 121 122 |
# File 'lib/rr/double_definitions/double_definition.rb', line 118 def yields(*args, &return_value_block) @yields_value = args install_method_callback return_value_block self end |