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
# 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
DoubleInjection Strategies
# File lib/rr/double_definitions/double_definition_create.rb, line 132 132: def 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 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