module Neo4jTestServer

Based off of the setup uses for SunspotTest

Attributes

edition[RW]
neo4j_startup_timeout[W]
server[W]

Public Class Methods

clear_db() click to toggle source
# File lib/neo4j_test_server.rb, line 71
def clear_db
  session.query('MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r')
end
neo4j_running?() click to toggle source
# File lib/neo4j_test_server.rb, line 44
def neo4j_running?
  begin
    Net::HTTP.get(URI.parse(ping_url))
    true
  rescue
    false # Neo4j not running
  end
end
neo4j_startup_timeout() click to toggle source
# File lib/neo4j_test_server.rb, line 14
def neo4j_startup_timeout
  @neo4j_startup_timeout ||= 30
end
ping_url() click to toggle source
# File lib/neo4j_test_server.rb, line 53
def ping_url
  "http://#{server.bind_address}:#{server.port}"
end
server() click to toggle source
# File lib/neo4j_test_server.rb, line 57
def server
  @server ||= Neo4jTest::Server.new edition
end
session() click to toggle source
# File lib/neo4j_test_server.rb, line 65
def session
  return nil unless neo4j_running?

  @session ||= Neo4j::Session.open(:server_db, ping_url)
end
setup_neo4j() click to toggle source
# File lib/neo4j_test_server.rb, line 18
def setup_neo4j
  start_neo4j_server
end
start_neo4j_server() click to toggle source
# File lib/neo4j_test_server.rb, line 22
def start_neo4j_server
  unless neo4j_running?
    server.start

    at_exit do
      puts "Shutting down Neo4j server at '#{server}'"
      server.stop
    end

    wait_for_server
  end
end
wait_for_server() click to toggle source
# File lib/neo4j_test_server.rb, line 35
def wait_for_server
  (neo4j_startup_timeout * 10).times do
    break if neo4j_running?
    sleep(0.1)
  end
  raise TimeoutError, "Neo4j failed to startup after #{neo4j_startup_timeout} seconds." unless neo4j_running?
  puts "Neo4j Running at '#{server}'"
end