Sha256: d3097dbad25ca7f4b688578a0ef8ae799ab0a07f46ed36abeaedc87fe36a0994

Contents?: true

Size: 871 Bytes

Versions: 2

Compression:

Stored size: 871 Bytes

Contents

module RR
  class ScenarioDefinitionBuilder
    attr_reader :definition

    def initialize(definition, args, handler)
      @definition = definition
      @args = args
      @handler = handler
    end
    
    def mock!
      @definition.with(*@args).once
    end

    def stub!
      @definition.any_number_of_times
      permissive_argument!
    end

    def do_not_call!
      @definition.never
      permissive_argument!
      reimplementation!
    end

    def permissive_argument!
      if @args.empty?
        @definition.with_any_args
      else
        @definition.with(*@args)
      end
    end

    def reimplementation!
      @definition.returns(&@handler)
    end
    
    def probe!
      @definition.after_call_block_callback_strategy!
      @definition.implemented_by_original_method
      @definition.after_call(&@handler) if @handler
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rr-0.3.10 lib/rr/scenario_definition_builder.rb
rr-0.3.11 lib/rr/scenario_definition_builder.rb