Sha256: 12c6f34df936d7a4e72e2c87d0bb1dbcc4e26e6573a856246b84ba8151de6d38

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

module Caricature

  # Describes a verification of a method call.
  # This corresponds kind of to an assertion
  class Verification

    # Initializes a new instance of a +Verification+
    def initialize(method_name, recorder, mode=:instance)
      @method_name, @args, @any_args, @recorder, @mode = method_name, [], true, recorder, mode
    end

    # indicates whether this verification can be for any arguments
    def any_args?
      @any_args
    end

    # constrain this verification to the provided arguments
    def with(*args)
      @any_args = false unless args.first == :any
      @args = args
      self
    end

    # allow any arguments ignore the argument constraint
    def allow_any_arguments
      @any_args = true
      self
    end

    # figure out if this argument variation matches the provided args.
    def matches?(method_name, *args)
      @method_name == method_name and any_args? or @args == args
    end

    # indicate that this method verification is successful
    def successful?
      a = any_args? ? [:any] : @args
      @recorder.was_called?(@method_name, @mode, *a)
    end

  end

end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
casualjim-caricature-0.5.0 lib/caricature/verification.rb
caricature-0.5.0 lib/caricature/verification.rb