Class RR::DoubleDefinitions::DoubleDefinitionCreate
In: lib/rr/double_definitions/double_definition_create.rb
Parent: Object

Methods

Included Modules

Space::Reader StrategySetupMethods ::RR::DoubleDefinitions::Strategies::StrategyMethods

Classes and Modules

Module RR::DoubleDefinitions::DoubleDefinitionCreate::StrategySetupMethods
Class RR::DoubleDefinitions::DoubleDefinitionCreate::DoubleDefinitionCreateError

Constants

NO_SUBJECT = Object.new

Attributes

double_injection_strategy  [R] 
implementation_strategy  [R] 
subject  [R] 
verification_strategy  [R] 

Public Class methods

[Source]

    # 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

Public Instance methods

all_instances_of(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)

Alias for instance_of

any_instance_of(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)

Alias for instance_of

[Source]

    # 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

[Source]

   # 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

[Source]

     # 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

[Source]

     # 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

[Source]

    # File lib/rr/double_definitions/double_definition_create.rb, line 45
45:       def method_name
46:         @verification_strategy.method_name
47:       end

[Source]

     # 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

[Source]

     # 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

[Source]

    # File lib/rr/double_definitions/double_definition_create.rb, line 41
41:       def root_subject
42:         subject
43:       end

[Source]

    # 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

[Source]

     # 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

[Source]

     # File lib/rr/double_definitions/double_definition_create.rb, line 114
114:       def stub(subject=NO_SUBJECT, method_name=nil, &definition_eval_block)
115:         self.add_verification_strategy(::RR::DoubleDefinitions::Strategies::Verification::Stub, subject, method_name, &definition_eval_block)
116:       end

[Validate]