### Question:
CypherUtil { public Result execute(String query, Multimap<String, Object> params, long timeout, TimeUnit unit) { query = substituteRelationships(query, params); query = resolveRelationships(query); return graphDb.execute(query, flattenMap(params), timeout, unit); } @Inject  CypherUtil(GraphDatabaseService graphDb, CurieUtil curieUtil); Result execute(String query, Multimap<String, Object> params, long timeout, TimeUnit unit); Result execute(String query, long timeout, TimeUnit unit); Result execute(String query, Multimap<String, Object> params); Result execute(String query); Set<RelationshipType> getEntailedRelationshipTypes(Collection<String> parents); @Deprecated String resolveStartQuery(String cypher); String resolveNodeIris(String cypher); String resolveRelationships(String cypher); Map<String, String> getCurieMap();  }### Answer:
@Test public void executeExecutes() { Multimap<String, Object> params = HashMultimap.create(); params.put("iri", "http: params.put("rel", "FOO:fizz"); Result result = util.execute("MATCH (n)<-[:${rel}!]-(n2) WHERE n.iri = {iri} RETURN n", params); assertThat(result.next().size(), is(1)); }