Class: Mocha::ParameterMatchers::Base Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/mocha/parameter_matchers/base.rb

Overview

This class is abstract.

Subclass and implement #matches? and #mocha_inspect to define a custom matcher. Also add a suitably named instance method to Mocha::ParameterMatchers to build an instance of the new matcher c.f. #equals.

Direct Known Subclasses

AllOf, AnyOf, AnyParameters, Anything, Equals, HasEntries, HasEntry, HasKey, HasValue, Includes, InstanceOf, IsA, KindOf, Not, Optionally, QueryStringMatches, RegexpMatches, RespondsWith, YamlEquivalent

Instance Method Summary (collapse)

Instance Method Details

- (AllOf) &(matcher)

A shorthand way of combining two matchers when both must match.

Returns a new AllOf parameter matcher combining two matchers using a logical AND.

This shorthand will not work with an implicit equals match. Instead, an explicit Equals matcher should be used.

Examples:

Alternative ways to combine matchers with a logical AND.

object = mock()
object.expects(:run).with(all_of(has_key(:foo), has_key(:bar)))
object.run(:foo => 'foovalue', :bar => 'barvalue')

# is exactly equivalent to

object.expects(:run).with(has_key(:foo) & has_key(:bar))
object.run(:foo => 'foovalue', :bar => 'barvalue)

Parameters:

  • matcher (Base)

    parameter matcher.

Returns:

  • (AllOf)

    parameter matcher.

See Also:



33
34
35
# File 'lib/mocha/parameter_matchers/base.rb', line 33

def &(matcher)
  AllOf.new(self, matcher)
end

- (AnyOf) |(matcher)

A shorthand way of combining two matchers when at least one must match.

Returns a new AnyOf parameter matcher combining two matchers using a logical OR.

This shorthand will not work with an implicit equals match. Instead, an explicit Equals matcher should be used.

Examples:

Alternative ways to combine matchers with a logical OR.

object = mock()
object.expects(:run).with(any_of(has_key(:foo), has_key(:bar)))
object.run(:foo => 'foovalue')

# is exactly equivalent to

object.expects(:run).with(has_key(:foo) | has_key(:bar))
object.run(:foo => 'foovalue')

Using an explicit Equals matcher in combination with #|.

object.expects(:run).with(equals(1) | equals(2))
object.run(1) # passes
object.run(2) # passes
object.run(3) # fails

Parameters:

  • matcher (Base)

    parameter matcher.

Returns:

  • (AnyOf)

    parameter matcher.

See Also:



63
64
65
# File 'lib/mocha/parameter_matchers/base.rb', line 63

def |(matcher)
  AnyOf.new(self, matcher)
end