@Test public void buildQueryFromPerson() throws Exception { SchemaNodeLoadClauseBuilder queryBuilder = createQueryBuilder(); String query = queryBuilder.build("n", "Person", 2); assertThat(query).isEqualTo(" RETURN n,[ " + "[ (n)-[r_f1:`FOUNDED`]->(o1:`Organisation`) | [ r_f1, o1 ] ], " + "[ (n)-[r_e1:`EMPLOYED_BY`]->(o1:`Organisation`) | [ r_e1, o1 ] ], " + "[ (n)-[r_l1:`LIVES_AT`]->(l1:`Location`) | [ r_l1, l1, " + "[ [ (l1)<-[r_l2:`LIVES_AT`]-(p2:`Person`) | [ r_l2, p2 ] ] ] " + "] ] " + "]"); }
@Test public void buildQuery() throws Exception { SchemaNodeLoadClauseBuilder queryBuilder = createQueryBuilder(); String query = queryBuilder.build("n", "Person", 0); assertThat(query).isEqualTo(" RETURN n"); }
@Test public void buildQueryFromLocation() throws Exception { SchemaNodeLoadClauseBuilder queryBuilder = createQueryBuilder(); String query = queryBuilder.build("n", "Location", 1); assertThat(query).isEqualTo(" RETURN n,[ [ (n)<-[r_l1:`LIVES_AT`]-(p1:`Person`) | [ r_l1, p1 ] ] ]"); }
@Test public void givenNodeWithNoRelationships_thenCreateSimpleQuery() throws Exception { SchemaNodeLoadClauseBuilder queryBuilder = createQueryBuilder(); String query = queryBuilder.build("n", "Organisation", 1); assertThat(query).isEqualTo(" RETURN n"); }
@Test public void givenLabelStartingWithR_thenNodeNameAndrelationshipNameShouldNotConflict() throws Exception { SchemaNodeLoadClauseBuilder queryBuilder = createQueryBuilder(); String query = queryBuilder.build("n", "Restaurant", 1); assertThat(query).isEqualTo(" RETURN n,[ [ (n)-[r_s1:`SIMILAR_TO`]->(r1:`Restaurant`) | [ r_s1, r1 ] ] ]"); }