Sha256: 5610ece4bf07349ed2a3475cb46fd6dc2fab0d9c9c5cf520cb1ba8af77871866

Contents?: true

Size: 1.64 KB

Versions: 3

Compression:

Stored size: 1.64 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
          if key == "domain"
            nil
          else
            { 'ok' => true, 'hostname' => 'pool' }
          end
        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

3 entries across 3 versions & 1 rubygems

Version Path
beaker-1.21.0 spec/mocks.rb
beaker-1.20.1 spec/mocks.rb
beaker-1.20.0 spec/mocks.rb