Sha256: 12824e86f6111913677be4068e9326193acab1ba7323b76d3aeeb06149fd7e61

Contents?: true

Size: 817 Bytes

Versions: 6

Compression:

Stored size: 817 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.implemented_by_original_method
      @definition.after_call(&@handler) if @handler
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rr-0.3.4 lib/rr/scenario_definition_builder.rb
rr-0.3.5 lib/rr/scenario_definition_builder.rb
rr-0.3.6 lib/rr/scenario_definition_builder.rb
rr-0.3.9 lib/rr/scenario_definition_builder.rb
rr-0.3.7 lib/rr/scenario_definition_builder.rb
rr-0.3.8 lib/rr/scenario_definition_builder.rb