Module: RR::DSL
- Included in:
- RR, Adapters::RRMethods
- Defined in:
- lib/rr/dsl.rb
Constant Summary collapse
- METHODS_TO_EXCLUDE_FROM_SPYING =
[ :methods, :==, :__send__, :__id__, :object_id, :class, :respond_to?, :inspect, :to_s, :respond_to_missing?, :instance_eval, :instance_exec ]
Instance Method Summary collapse
- #any_instance_of(*args, &block) ⇒ Object
-
#any_times ⇒ Object
Returns a AnyTimesMatcher.
-
#anything ⇒ Object
Sets up an Anything wildcard ArgumentEqualityExpectation that succeeds when passed any argument.
-
#boolean ⇒ Object
Sets up an Boolean wildcard ArgumentEqualityExpectation that succeeds when passed an argument that is a ::Boolean.
- #dont_allow(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
-
#duck_type(*args) ⇒ Object
Sets up a DuckType wildcard ArgumentEqualityExpectation that succeeds when the passed argument implements the methods.
-
#hash_including(expected_hash) ⇒ Object
Sets up a HashIncluding wildcard ArgumentEqualityExpectation that succeeds when the passed argument contains at least those keys and values of the expectation.
- #instance_of(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
-
#is_a(klass) ⇒ Object
Sets up an IsA wildcard ArgumentEqualityExpectation that succeeds when passed an argument of a certain type.
- #mock(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
-
#numeric ⇒ Object
Sets up an Numeric wildcard ArgumentEqualityExpectation that succeeds when passed an argument that is ::Numeric.
- #proxy(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
- #received(subject) ⇒ Object
-
#reset ⇒ Object
Resets the registered Doubles and ordered Doubles.
-
#satisfy(expectation_proc = nil, &block) ⇒ Object
Sets up a Satisfy wildcard ArgumentEqualityExpectation that succeeds when the passed argument causes the expectation’s proc to return true.
- #spy(subject) ⇒ Object
- #strong(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
- #stub(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
-
#verify ⇒ Object
Verifies all the DoubleInjection objects have met their TimesCalledExpectations.
Methods included from RR::DoubleDefinitions::Strategies::StrategyMethods
#any_instance_of!, #dont_allow!, #instance_of!, #mock!, #proxy!, #strong!, #stub!
Instance Method Details
#any_instance_of(*args, &block) ⇒ Object
50 51 52 |
# File 'lib/rr/dsl.rb', line 50 def any_instance_of(*args, &block) RR::DoubleDefinitions::DoubleInjections::AnyInstanceOf.call(*args, &block) end |
#any_times ⇒ Object
Returns a AnyTimesMatcher. This is meant to be passed in as an argument to Double#times.
mock(object).method_name(anything).times(any_times) {return_value}
69 70 71 |
# File 'lib/rr/dsl.rb', line 69 def any_times TimesCalledMatchers::AnyTimesMatcher.new end |
#anything ⇒ Object
Sets up an Anything wildcard ArgumentEqualityExpectation that succeeds when passed any argument.
mock(object).method_name(anything) {return_value}
object.method_name("an arbitrary value") # passes
77 78 79 |
# File 'lib/rr/dsl.rb', line 77 def anything RR::WildcardMatchers::Anything.new end |
#boolean ⇒ Object
Sets up an Boolean wildcard ArgumentEqualityExpectation that succeeds when passed an argument that is a ::Boolean.
mock(object).method_name(boolean) {return_value}
object.method_name(false) # passes
101 102 103 |
# File 'lib/rr/dsl.rb', line 101 def boolean RR::WildcardMatchers::Boolean.new end |
#dont_allow(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
30 31 32 33 |
# File 'lib/rr/dsl.rb', line 30 def dont_allow(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block) double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new double_definition_create.dont_allow(subject, method_name, &definition_eval_block) end |
#duck_type(*args) ⇒ Object
Sets up a DuckType wildcard ArgumentEqualityExpectation that succeeds when the passed argument implements the methods.
arg = Object.new
def arg.foo; end
def arg.; end
mock(object).method_name(duck_type(:foo, :bar)) {return_value}
object.method_name(arg) # passes
112 113 114 |
# File 'lib/rr/dsl.rb', line 112 def duck_type(*args) RR::WildcardMatchers::DuckType.new(*args) end |
#hash_including(expected_hash) ⇒ Object
Sets up a HashIncluding wildcard ArgumentEqualityExpectation that succeeds when the passed argument contains at least those keys and values of the expectation.
mock(object).method_name(hash_including(:foo => 1)) {return_value}
object.method_name({:foo => 1, :bar => 2) # passes
121 122 123 |
# File 'lib/rr/dsl.rb', line 121 def hash_including(expected_hash) RR::WildcardMatchers::HashIncluding.new(expected_hash) end |
#instance_of(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
45 46 47 48 |
# File 'lib/rr/dsl.rb', line 45 def instance_of(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block) double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new double_definition_create.instance_of(subject, method_name, &definition_eval_block) end |
#is_a(klass) ⇒ Object
Sets up an IsA wildcard ArgumentEqualityExpectation that succeeds when passed an argument of a certain type.
mock(object).method_name(is_a(String)) {return_value}
object.method_name("A String") # passes
85 86 87 |
# File 'lib/rr/dsl.rb', line 85 def is_a(klass) RR::WildcardMatchers::IsA.new(klass) end |
#mock(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
20 21 22 23 |
# File 'lib/rr/dsl.rb', line 20 def mock(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block) double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new double_definition_create.mock(subject, method_name, &definition_eval_block) end |
#numeric ⇒ Object
Sets up an Numeric wildcard ArgumentEqualityExpectation that succeeds when passed an argument that is ::Numeric.
mock(object).method_name(numeric) {return_value}
object.method_name(99) # passes
93 94 95 |
# File 'lib/rr/dsl.rb', line 93 def numeric RR::WildcardMatchers::Numeric.new end |
#proxy(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
35 36 37 38 |
# File 'lib/rr/dsl.rb', line 35 def proxy(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block) double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new double_definition_create.proxy(subject, method_name, &definition_eval_block) end |
#received(subject) ⇒ Object
144 145 146 |
# File 'lib/rr/dsl.rb', line 144 def received(subject) RR::SpyVerificationProxy.new(subject) end |
#reset ⇒ Object
Resets the registered Doubles and ordered Doubles
61 62 63 |
# File 'lib/rr/dsl.rb', line 61 def reset RR::Space.instance.reset end |
#satisfy(expectation_proc = nil, &block) ⇒ Object
Sets up a Satisfy wildcard ArgumentEqualityExpectation that succeeds when the passed argument causes the expectation’s proc to return true.
mock(object).method_name(satisfy {|arg| arg == :foo}) {return_value}
object.method_name(:foo) # passes
130 131 132 133 |
# File 'lib/rr/dsl.rb', line 130 def satisfy(expectation_proc=nil, &block) expectation_proc ||= block RR::WildcardMatchers::Satisfy.new(expectation_proc) end |
#spy(subject) ⇒ Object
135 136 137 138 139 140 141 142 |
# File 'lib/rr/dsl.rb', line 135 def spy(subject) subject_methods = subject.public_methods.map {|method_name| method_name.to_sym } methods_to_stub = subject_methods - METHODS_TO_EXCLUDE_FROM_SPYING methods_to_stub.each do |method| stub.proxy(subject, method) end end |
#strong(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
40 41 42 43 |
# File 'lib/rr/dsl.rb', line 40 def strong(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block) double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new double_definition_create.strong(subject, method_name, &definition_eval_block) end |
#stub(subject = DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name = nil, &definition_eval_block) ⇒ Object
25 26 27 28 |
# File 'lib/rr/dsl.rb', line 25 def stub(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block) double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new double_definition_create.stub(subject, method_name, &definition_eval_block) end |