@Test
public void simpleAPIPlusCypherQueryTest() throws IOException {
PersistenceServiceProvider.configFile = "local-config-beans.xml";
ContextTrackingProvider.configFile = "local-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
Query query = parser.parse("start n=(calls, 'callId:" + call.getId() + "') match (n)-[r:CREATES]->(x)-[i:INSTANTIATE]-> (w) -[u:USE]->v return v");