| Class | RR::DoubleDefinitions::DoubleDefinitionCreate |
| In: |
lib/rr/double_definitions/double_definition_create.rb
|
| Parent: | Object |
| NO_SUBJECT | = | Object.new |
| double_injection_strategy | [R] | |
| implementation_strategy | [R] | |
| subject | [R] | |
| verification_strategy | [R] |
# File lib/rr/double_definitions/double_definition_create.rb, line 27
27: def initialize
28: @verification_strategy = Strategies::Verification::Stub.new(self)
29: @implementation_strategy = Strategies::Implementation::Reimplementation.new(self)
30: @double_injection_strategy = self.class.default_double_injection_strategy.call(self)
31: end
DoubleInjection Strategies
# File lib/rr/double_definitions/double_definition_create.rb, line 132
132: def any_instance_of(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)
133: self.add_double_injection_strategy(::RR::DoubleDefinitions::Strategies::DoubleInjection::AnyInstanceOf, subject, method_name, &definition_eval_block)
134: end
# File lib/rr/double_definitions/double_definition_create.rb, line 33
33: def call(method_name, *args, &handler)
34: definition = DoubleDefinition.new(self)
35: verification_strategy.call(definition, method_name, args, handler)
36: implementation_strategy.call(definition, method_name, args, handler)
37: double_injection_strategy.call(definition, method_name, args, handler)
38: definition
39: end
# File lib/rr/double_definitions/double_definition_create.rb, line 5 5: def default_double_injection_strategy 6: @default_double_injection_strategy ||= lambda do |double_injection_create| 7: Strategies::DoubleInjection::Instance.new(double_injection_create) 8: end 9: end
# File lib/rr/double_definitions/double_definition_create.rb, line 118
118: def dont_allow(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)
119: self.add_verification_strategy(::RR::DoubleDefinitions::Strategies::Verification::DontAllow, subject, method_name, &definition_eval_block)
120: end
# File lib/rr/double_definitions/double_definition_create.rb, line 136
136: def instance_of(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)
137: self.add_double_injection_strategy(::RR::DoubleDefinitions::Strategies::DoubleInjection::NewInstanceOf, subject, method_name, &definition_eval_block)
138: end
# File lib/rr/double_definitions/double_definition_create.rb, line 45
45: def method_name
46: @verification_strategy.method_name
47: end
# File lib/rr/double_definitions/double_definition_create.rb, line 110
110: def mock(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)
111: self.add_verification_strategy(::RR::DoubleDefinitions::Strategies::Verification::Mock, subject, method_name, &definition_eval_block)
112: end
Implementation Strategies
# File lib/rr/double_definitions/double_definition_create.rb, line 123
123: def proxy(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)
124: self.add_implementation_strategy(::RR::DoubleDefinitions::Strategies::Implementation::Proxy, subject, method_name, &definition_eval_block)
125: end
# File lib/rr/double_definitions/double_definition_create.rb, line 41
41: def root_subject
42: subject
43: end
# File lib/rr/double_definitions/double_definition_create.rb, line 11
11: def set_default_double_injection_strategy(strategy_lambda)
12: original_strategy_lambda = default_double_injection_strategy
13: begin
14: @default_double_injection_strategy = strategy_lambda
15: yield
16: ensure
17: @default_double_injection_strategy = original_strategy_lambda
18: end
19: end
# File lib/rr/double_definitions/double_definition_create.rb, line 127
127: def strong(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)
128: self.add_implementation_strategy(::RR::DoubleDefinitions::Strategies::Implementation::StronglyTypedReimplementation, subject, method_name, &definition_eval_block)
129: end