config.configuration().setProperty(
Configurator.WEBSERVER_PORT_PROPERTY_KEY, 7575);
config.configuration().setProperty(
Configurator.REST_API_PATH_PROPERTY_KEY,
"http://localhost:7575/db/data/");
WrappingNeoServerBootstrapper srv = new WrappingNeoServerBootstrapper(myDb, config);
srv.start();
PersistenceServiceProvider.configFile = "remote-config-beans.xml";
ContextTrackingProvider.configFile = "remote-config-beans.xml";
PersistenceService persistenceService = PersistenceServiceProvider.getPersistenceService();
ContextTrackingService trackingService = ContextTrackingProvider.getTrackingService();
Call call = new Call(1, 1, new Date());
persistenceService.storeCall(call);
assertNotSame("", call.getId());
call = persistenceService.loadCall(call.getId());
assertNotNull(call);
Emergency emergency = new Emergency();
persistenceService.storeEmergency(emergency);
assertNotSame("", emergency.getId());
emergency = persistenceService.loadEmergency(emergency.getId());
assertNotNull(emergency);
trackingService.attachEmergency(call.getId(), emergency.getId());
Procedure procedure = new Procedure("MyProcedure");
persistenceService.storeProcedure(procedure);
assertNotSame("", procedure.getId());
procedure = persistenceService.loadProcedure(procedure.getId());
assertNotNull(procedure);
trackingService.attachProcedure(emergency.getId(), procedure.getId());
Vehicle vehicle = new Ambulance();
persistenceService.storeVehicle(vehicle);
assertNotSame("", vehicle.getId());
vehicle = persistenceService.loadVehicle(vehicle.getId());
assertNotNull(vehicle);
trackingService.attachVehicle(procedure.getId(), vehicle.getId());
Vehicle vehicle2 = new FireTruck();
persistenceService.storeVehicle(vehicle2);
assertNotSame("", vehicle2.getId());
vehicle2 = persistenceService.loadVehicle(vehicle2.getId());
assertNotNull(vehicle2);
trackingService.attachVehicle(procedure.getId(), vehicle2.getId());
ServiceChannel channel = new ServiceChannel("MyChannel");
persistenceService.storeServiceChannel(channel);
assertNotSame("", channel.getId());
channel = persistenceService.loadServiceChannel(channel.getId());
assertNotNull(channel);
trackingService.attachServiceChannel(emergency.getId(), channel.getId());
CypherParser parser = new CypherParser();
ExecutionEngine engine = new ExecutionEngine(trackingService.getGraphDb());
//Give me all the vehicle associated with the procedures that are part of the emergency that was created by this phoneCallId
HttpClient client = new HttpClient();
PostMethod method = new PostMethod("http://localhost:7575/db/data/ext/CypherPlugin/graphdb/execute_query");
method.setRequestHeader("Content-type", "application/json");
method.setRequestHeader("Accept", "application/json");
String content = "{\"query\": \"start n=(calls, 'callId:" + call.getId() + "') match (n)-[r:CREATES]->(x)-[i:INSTANTIATE]-> (w) -[u:USE]->v return v\"}";
method.setRequestEntity(new StringRequestEntity(content, "application/json", "UTF-8"));
client.executeMethod(method);
Gson gson = new Gson();
QueryResult result = gson.fromJson(method.getResponseBodyAsString(),
new TypeToken<QueryResult>() {
}.getType());
System.out.println("results: " + result);
Assert.assertEquals(2, result.getData().size());
for (List<ResponseNode> data : result.getData()) {
Map<String, String> props = data.get(0).getData();
for (String key : props.keySet()) {
System.out.println("Property ("+key+"): "+props.get(key));
}
}
client = new HttpClient();
method = new PostMethod("http://localhost:7575/db/data/ext/CypherPlugin/graphdb/execute_query");
method.setRequestHeader("Content-type", "application/json");
method.setRequestHeader("Accept", "application/json");
content = "{\"query\": \"start v=(vehicles, 'vehicleId:" + vehicle.getId() + "') match (v) <-[USE]- (w) return w\"}";
method.setRequestEntity(new StringRequestEntity(content, "application/json", "UTF-8"));
client.executeMethod(method);
gson = new Gson();
result = gson.fromJson(method.getResponseBodyAsString(),
new TypeToken<QueryResult>() {
}.getType());
System.out.println("results: " + result);
Assert.assertEquals(1, result.getData().size());
for (List<ResponseNode> data : result.getData()) {
Map<String, String> props = data.get(0).getData();
for (String key : props.keySet()) {
System.out.println("Property ("+key+"): "+props.get(key));
}
}
// tracking.detachVehicle(vehicleId);
//
// tracking.detachProcedure(procedureId);
//
// tracking.detachEmergency(emergencyId);
//
myDb.shutdown();
srv.stop();
}