@Test public void testDefaultMultipleSortOrders() { String cypher = "MATCH (n:`Raptor`) WITH n ORDER BY n.age,n.name RETURN n"; check(cypher, query.findByType("Raptor", 0).setSortOrder(sortOrder.add("age", "name")).getStatement()); check(cypher, query.findByType("Raptor", 0).setSortOrder(new SortOrder("age", "name")).getStatement()); check(cypher, query.findByType("Raptor", 0).setSortOrder(new SortOrder().asc("age", "name")).getStatement()); }
@Test public void testMultipleSortOrders() { String cypher = "MATCH (n:`Raptor`) WITH n ORDER BY n.age DESC,n.name DESC RETURN n"; check(cypher, query.findByType("Raptor", 0).setSortOrder(sortOrder.add(DESC, "age", "name")).getStatement()); check(cypher, query.findByType("Raptor", 0).setSortOrder(new SortOrder(DESC, "age", "name")).getStatement()); check(cypher, query.findByType("Raptor", 0).setSortOrder(new SortOrder().desc("age", "name")).getStatement()); }
@Test public void testFindByType() { sortOrder.add("name"); check("MATCH (n:`Raptor`) WITH n ORDER BY n.name MATCH p=(n)-[*0..1]-(m) RETURN p, ID(n)", query.findByType("Raptor", 1).setSortOrder(sortOrder).getStatement()); }
@Test public void testFindByTypeDepthInfinite() { sortOrder.add(DESC, "name"); check("MATCH (n:`Raptor`) WITH n ORDER BY n.name DESC MATCH p=(n)-[*0..]-(m) RETURN p, ID(n)", query.findByType("Raptor", -1).setSortOrder(sortOrder).getStatement()); }
@Test public void testFindByTypeDepthZero() { sortOrder.add(DESC, "name"); check("MATCH (n:`Raptor`) WITH n ORDER BY n.name DESC RETURN n", query.findByType("Raptor", 0).setSortOrder(sortOrder).getStatement()); }
@Test public void testDifferentSortDirections() { sortOrder.add(DESC, "age").add("name"); check("MATCH (n:`Raptor`) WITH n ORDER BY n.age DESC,n.name RETURN n", query.findByType("Raptor", 0).setSortOrder(sortOrder).getStatement()); }
@Test public void testFindByProperty() { sortOrder.add(DESC, "weight"); filters.add(new Filter("name", EQUALS, "velociraptor")); check( "MATCH (n:`Raptor`) WHERE n.`name` = { `name_0` } WITH n ORDER BY n.weight DESC MATCH p=(n)-[*0..2]-(m) RETURN p, ID(n)", query.findByType("Raptor", filters, 2).setSortOrder(sortOrder).getStatement()); }
@Test public void testByPropertyDepthZero() { filters.add(new Filter("name", EQUALS, "velociraptor")); sortOrder.add(DESC, "weight"); check("MATCH (n:`Raptor`) WHERE n.`name` = { `name_0` } WITH n ORDER BY n.weight DESC RETURN n", query.findByType("Raptor", filters, 0).setSortOrder(sortOrder).getStatement()); }
@Test public void testFindByPropertyDepthInfinite() { sortOrder.add(DESC, "name"); filters.add(new Filter("name", EQUALS, "velociraptor")); check( "MATCH (n:`Raptor`) WHERE n.`name` = { `name_0` } WITH n ORDER BY n.name DESC MATCH p=(n)-[*0..]-(m) RETURN p, ID(n)", query.findByType("Raptor", filters, -1).setSortOrder(sortOrder).getStatement()); }