Module: Neo4jTestServer

Defined in:
lib/neo4j_test_server.rb

Overview

Based off of the setup uses for SunspotTest

Defined Under Namespace

Classes: TimeoutError

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.editionObject

Returns the value of attribute edition.



12
13
14
# File 'lib/neo4j_test_server.rb', line 12

def edition
  @edition
end

.neo4j_startup_timeoutObject



14
15
16
# File 'lib/neo4j_test_server.rb', line 14

def neo4j_startup_timeout
  @neo4j_startup_timeout ||= 30
end

.serverObject



57
58
59
# File 'lib/neo4j_test_server.rb', line 57

def server
  @server ||= Neo4jTest::Server.new edition
end

Class Method Details

.clear_dbObject



71
72
73
# 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?Boolean

Returns:

  • (Boolean)


44
45
46
47
48
49
50
51
# 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

.ping_urlObject



53
54
55
# File 'lib/neo4j_test_server.rb', line 53

def ping_url
  "http://#{server.bind_address}:#{server.port}"
end

.sessionObject



65
66
67
68
69
# 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_neo4jObject



18
19
20
# File 'lib/neo4j_test_server.rb', line 18

def setup_neo4j
  start_neo4j_server
end

.start_neo4j_serverObject



22
23
24
25
26
27
28
29
30
31
32
33
# 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_serverObject

Raises:



35
36
37
38
39
40
41
42
# 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