Sha256: 67cce624ee21bafac1f3534ac64c45d40a14d6e1a38c6c47da73ebc1554c837b

Contents?: true

Size: 1.05 KB

Versions: 4

Compression:

Stored size: 1.05 KB

Contents

require 'net/http'

# This is only needed till I get ActiveResource going through rack-test
class TestServer
  @pid_file = "./rest-assured.pid"

  def self.start(opts = {})
    @server_port = opts[:port] || 9876

    print 'Starting TestServer server... '

    p = Process.fork do
      if get_pid
        print "\nPrevious TestServer instance appears to be running. Will be using it."
      else
        Process.exec("bundle exec rest-assured -p #{@server_port} -a mysql")
      end
    end

    Process.detach(p)
    puts 'Done.'
  end

  def self.stop
    print 'Shutting down TestServer server... '
    Process.kill('TERM', get_pid.to_i) rescue puts( "Failed to kill TestServer server: #{$!}" )
    puts 'Done.'
  end

  def self.server_address
    "http://localhost:#{@server_port}"
  end

  def self.up?
    Net::HTTP.new('localhost', @server_port).head('/')
    true
  rescue Errno::ECONNREFUSED
    false
  end

  private

    def self.get_pid
      `ps -eo pid,args`.split("\n").grep( /rest-assured -p #{@server_port}/ ).map{|p| p.split.first }.first
    end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rest-assured-0.3.0 features/support/test-server.rb
rest-assured-0.2.0 features/support/test-server.rb
rest-assured-0.2.0.rc8 features/support/test-server.rb
rest-assured-0.2.0.rc7 features/support/test-server.rb