Sha256: 53b4bff09e6bb9deaf38310f93c5dce555cd79ca56971e9e2cb8e79026b36492

Contents?: true

Size: 1.56 KB

Versions: 11

Compression:

Stored size: 1.56 KB

Contents

class MockIO < IO
  def initialize
  end

  methods.each do |meth|
    define_method(:meth) {}
  end

  def === other
    super other
  end
end

module MockNet
  class HTTP

    class Response
      class ResponseHash
        def []key
          { 'ok' => true, 'hostname' => 'pool' }
        end

      end

      def body
        ResponseHash.new
      end

    end

    class Post
      def initialize uri
        @uri = uri
      end

      def set_form_data hash

      end
    end

    class Delete
      def initialize uri
        @uri = uri
      end
    end

    def initialize host, port
      @host = host
      @port = port
    end

    def request req
      Response.new
    end
  end

end

module FakeHost
  def self.create(name = 'fakevm', platform = 'redhat-version-arch', options = {})
    options_hash = Beaker::Options::OptionsHash.new.merge(options)
    options_hash['HOSTS'] = { name => { 'platform' => Beaker::Platform.new(platform) } }
    host = Beaker::Host.create(name, options_hash)
    host.extend(MockedExec)
    host
  end

  module MockedExec
    def self.extended(other)
      other.instance_eval do
        send(:instance_variable_set, :@commands, [])
      end
    end

    attr_accessor :commands

    def port_open?(port)
      true
    end

    def any_exec_result
      RSpec::Mocks::Mock.new('exec-result').as_null_object
    end

    def exec(command, options = {})
      commands << command
      any_exec_result
    end

    def command_strings
      commands.map { |c| [c.command, c.args].join(' ') }
    end
  end

  def log_prefix
    "FakeHost"
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
beaker-1.19.1 spec/mocks.rb
beaker-1.19.0 spec/mocks.rb
beaker-1.18.0 spec/mocks.rb
beaker-1.17.7 spec/mocks.rb
beaker-1.17.6 spec/mocks.rb
beaker-1.17.5 spec/mocks.rb
beaker-1.17.4 spec/mocks.rb
beaker-1.17.3 spec/mocks.rb
beaker-1.17.2 spec/mocks.rb
beaker-1.17.1 spec/mocks.rb
beaker-1.17.0 spec/mocks.rb