Sha256: 34b7b543197402b6f63ab6e9446e7fc51b757069e5d98268f3b18f5eddf0b334

Contents?: true

Size: 808 Bytes

Versions: 2

Compression:

Stored size: 808 Bytes

Contents

module ArubaDoubles
  class Double
    attr_reader :stdout, :stderr, :exit_status, :expectations
    
    def self.run!(expectations = {})
      double = self.new(expectations)
      double.run
      puts double.stdout if double.stdout
      warn double.stderr if double.stderr
      exit(double.exit_status) if double.exit_status
    end
    
    def initialize(expectations = {})
      @expectations = expectations
    end
    
    def could_receive(args, options = {})
      @expectations[args] = options
      self
    end
    
    def run(argv = ARGV)
      raise "Unexpected arguments: #{argv.inspect}" unless @expectations.has_key?(argv)
      @stdout = @expectations[argv][:stdout]
      @stderr = @expectations[argv][:stderr]
      @exit_status = @expectations[argv][:exit_status]
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
aruba-doubles-0.2.3 lib/aruba-doubles/double.rb
aruba-doubles-0.2.2 lib/aruba-doubles/double.rb