class RR::DoubleDefinitions::DoubleDefinitionCreate
Constants
- NO_SUBJECT
Attributes
Public Class Methods
Source
# File lib/rr/double_definitions/double_definition_create.rb, line 27 def initialize @verification_strategy = Strategies::Verification::Stub.new(self) @implementation_strategy = Strategies::Implementation::Reimplementation.new(self) @double_injection_strategy = self.class.default_double_injection_strategy.call(self) end
Public Instance Methods
Alias for: instance_of
Alias for: instance_of
Source
# File lib/rr/double_definitions/double_definition_create.rb, line 33 def call(method_name, *args, &handler) definition = DoubleDefinition.new(self) verification_strategy.call(definition, method_name, args, handler) implementation_strategy.call(definition, method_name, args, handler) double_injection_strategy.call(definition, method_name, args, handler) definition end
Source
# File lib/rr/double_definitions/double_definition_create.rb, line 120 def dont_allow(subject=NO_SUBJECT, method_name=nil, &definition_eval_block) self.add_verification_strategy(::RR::DoubleDefinitions::Strategies::Verification::DontAllow, subject, method_name, &definition_eval_block) end
Source
# File lib/rr/double_definitions/double_definition_create.rb, line 136 def instance_of(subject=NO_SUBJECT, method_name=nil, &definition_eval_block) self.add_double_injection_strategy(::RR::DoubleDefinitions::Strategies::DoubleInjection::AnyInstanceOf, subject, method_name, &definition_eval_block) end
DoubleInjection Strategies
Also aliased as: any_instance_of, all_instances_of
Source
# File lib/rr/double_definitions/double_definition_create.rb, line 45 def method_name @verification_strategy.method_name end
Source
# File lib/rr/double_definitions/double_definition_create.rb, line 112 def mock(subject=NO_SUBJECT, method_name=nil, &definition_eval_block) self.add_verification_strategy(::RR::DoubleDefinitions::Strategies::Verification::Mock, subject, method_name, &definition_eval_block) end
Source
# File lib/rr/double_definitions/double_definition_create.rb, line 126 def proxy(subject=NO_SUBJECT, method_name=nil, &definition_eval_block) self.add_implementation_strategy(::RR::DoubleDefinitions::Strategies::Implementation::Proxy, subject, method_name, &definition_eval_block) end
Implementation Strategies
Source
# File lib/rr/double_definitions/double_definition_create.rb, line 41 def root_subject subject end
Source
# File lib/rr/double_definitions/double_definition_create.rb, line 130 def strong(subject=NO_SUBJECT, method_name=nil, &definition_eval_block) self.add_implementation_strategy(::RR::DoubleDefinitions::Strategies::Implementation::StronglyTypedReimplementation, subject, method_name, &definition_eval_block) end
Source
# File lib/rr/double_definitions/double_definition_create.rb, line 116 def stub(subject=NO_SUBJECT, method_name=nil, &definition_eval_block) self.add_verification_strategy(::RR::DoubleDefinitions::Strategies::Verification::Stub, subject, method_name, &definition_eval_block) end