module RR::DSL

Constants

METHODS_TO_EXCLUDE_FROM_SPYING

Public Instance Methods

any_instance_of(*args, &block) click to toggle source
# File lib/rr/dsl.rb, line 50
def any_instance_of(*args, &block)
  RR::DoubleDefinitions::DoubleInjections::AnyInstanceOf.call(*args, &block)
end
any_times() click to toggle source

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}
# File lib/rr/dsl.rb, line 69
def any_times
  TimesCalledMatchers::AnyTimesMatcher.new
end
anything() click to toggle source

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
# File lib/rr/dsl.rb, line 77
def anything
  RR::WildcardMatchers::Anything.new
end
boolean() click to toggle source

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
# 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) click to toggle source
# 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) click to toggle source

Sets up a DuckType wildcard ArgumentEqualityExpectation that succeeds when the passed argument implements the methods.

arg = Object.new
def arg.foo; end
def arg.bar; end
mock(object).method_name(duck_type(:foo, :bar)) {return_value}
object.method_name(arg) # passes
# File lib/rr/dsl.rb, line 112
def duck_type(*args)
  RR::WildcardMatchers::DuckType.new(*args)
end
hash_including(expected_hash) click to toggle source

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
# 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) click to toggle source
# 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) click to toggle source

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
# 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) click to toggle source
# 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() click to toggle source

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
# 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) click to toggle source
# 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) click to toggle source
# File lib/rr/dsl.rb, line 144
def received(subject)
  RR::SpyVerificationProxy.new(subject)
end
reset() click to toggle source

Resets the registered Doubles and ordered Doubles

# File lib/rr/dsl.rb, line 61
def reset
  RR::Space.instance.reset
end
satisfy(expectation_proc=nil, &block) click to toggle source

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
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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
verify() click to toggle source

Verifies all the DoubleInjection objects have met their TimesCalledExpectations.

# File lib/rr/dsl.rb, line 56
def verify
  RR::Space.instance.verify_doubles
end