Refine search
@Test public void joinFiltersWithAndMethod() { Filter filter1 = new Filter("property1", ComparisonOperator.EQUALS, "value1"); Filter filter2 = new Filter("property2", ComparisonOperator.EQUALS, "value2"); Filters andFilter = filter1.and(filter2); assertThat(filter2.getBooleanOperator()).isEqualTo(BooleanOperator.AND); Iterator<Filter> iterator = andFilter.iterator(); assertThat(iterator.next()).isEqualTo(filter1); assertThat(iterator.next()).isEqualTo(filter2); }
@Test public void inCollectionFilterTest() { ContainsAnyComparison filterFunction = new ContainsAnyComparison("test"); Filter filter = new Filter("property", filterFunction); assertThat(filter.toCypher("n", true)) .isEqualTo("WHERE ANY(collectionFields IN {`property_0`} WHERE collectionFields in n.`property`) "); assertThat(filter.parameters().get("property_0")).isEqualTo("test"); }
@Test public void equalComparisionShouldWork() { final String value = "someOtherThing"; Filter filter = new Filter("thing", ComparisonOperator.EQUALS, value); filter.setFunction(new PropertyComparison(value)); assertThat(filter.toCypher("n", true)).isEqualTo("WHERE n.`thing` = { `thing_0` } "); filter = new Filter("thing", ComparisonOperator.EQUALS, value); filter.ignoreCase(); assertThat(filter.toCypher("n", true)).isEqualTo("WHERE toLower(n.`thing`) = toLower({ `thing_0` }) "); }
/** * @throws Exception * @see Issue #73 */ @Test(expected = MissingOperatorException.class) public void testFindByPropertiesAndedWithMissingBooleanOperator() throws Exception { Filter distance = new Filter("distance", ComparisonOperator.EQUALS, 60.2); Filter time = new Filter("time", ComparisonOperator.EQUALS, 3600); query.findByType("ORBITS", new Filters().add(distance, time), 4).getStatement(); }
/** * @see DATAGRAPH-445 */ @Test public void testFindByChainedOredProperties() { Filter planetParam = new Filter("name", ComparisonOperator.EQUALS, "Earth"); Filter moonParam = new Filter("name", ComparisonOperator.EQUALS, "Moon"); assertThat(queryStatements.findByType("Asteroid", new Filters().add(planetParam).or(moonParam), 1).getStatement()) .isEqualTo("MATCH (n:`Asteroid`) WHERE n.`name` = { `name_0` } " + "OR n.`name` = { `name_1` } WITH n MATCH p=(n)-[*0..1]-(m) RETURN p, ID(n)"); }
@Test public void findByPropertyEmbeddedDelimiter() throws Exception { query = nodeQueryStatements.findByType("Cookbooks", new Filters().add(new Filter("title", ComparisonOperator.EQUALS, "Mrs Beeton's Household Recipes")), 1); assertThat(query.getStatement()).isEqualTo( "MATCH (n:`Cookbooks`) WHERE n.`title` = { `title_0` } WITH n MATCH p=(n)-[*0..1]-(m) RETURN p, ID(n)"); assertThat(mapper.writeValueAsString(query.getParameters())) .isEqualTo("{\"title_0\":\"Mrs Beeton's Household Recipes\"}"); }
@Test public void findByPropertyStandardForm() throws Exception { query = nodeQueryStatements .findByType("Asteroid", new Filters().add(new Filter("diameter", ComparisonOperator.EQUALS, 6.02E1)), 1); assertThat(query.getStatement()).isEqualTo( "MATCH (n:`Asteroid`) WHERE n.`diameter` = { `diameter_0` } WITH n MATCH p=(n)-[*0..1]-(m) RETURN p, ID(n)"); assertThat(mapper.writeValueAsString(query.getParameters())).isEqualTo("{\"diameter_0\":60.2}"); }
@Test public void findByPropertyDecimal() throws Exception { query = nodeQueryStatements .findByType("Asteroid", new Filters().add(new Filter("diameter", ComparisonOperator.EQUALS, 60.2)), 1); assertThat(query.getStatement()).isEqualTo( "MATCH (n:`Asteroid`) WHERE n.`diameter` = { `diameter_0` } WITH n MATCH p=(n)-[*0..1]-(m) RETURN p, ID(n)"); assertThat(mapper.writeValueAsString(query.getParameters())).isEqualTo("{\"diameter_0\":60.2}"); }
@Test public void loadRatingByUserName() { Filter userNameFilter = new Filter("name", ComparisonOperator.EQUALS, "Michal"); Filter ratingFilter = new Filter("stars", ComparisonOperator.EQUALS, 5); userNameFilter.setNestedPath( new Filter.NestedPathSegment("user", User.class) ); Collection<Rating> ratings = session.loadAll(Rating.class, userNameFilter.and(ratingFilter)); assertThat(ratings).hasSize(1); } @Test
@Test public void findByPropertyWildcardLike() throws JsonProcessingException { Filter filter = new Filter("ref", ComparisonOperator.LIKE, "*nia"); query = nodeQueryStatements.findByType("Asteroid", new Filters().add(filter), 1); assertThat(mapper.writeValueAsString(query.getParameters())).isEqualTo("{\"ref_0\":\"(?i).*nia\"}"); }
@Test public void testCountEdgesWithTypeAndFilters() throws Exception { CypherQuery query = statements .countEdges("INFLUENCE", new Filters().add(new Filter("score", ComparisonOperator.EQUALS, -12.2))); assertThat(query.getStatement()) .isEqualTo("MATCH (n)-[r0:`INFLUENCE`]->(m) WHERE r0.`score` = { `score_0` } RETURN COUNT(r0)"); assertThat(query.getParameters().toString()).isEqualTo("{score_0=-12.2}"); }
@Test public void findByPropertyStringValue() throws Exception { query = nodeQueryStatements .findByType("Asteroid", new Filters().add(new Filter("ref", ComparisonOperator.EQUALS, "45 Eugenia")), 1); assertThat(query.getStatement()).isEqualTo( "MATCH (n:`Asteroid`) WHERE n.`ref` = { `ref_0` } WITH n MATCH p=(n)-[*0..1]-(m) RETURN p, ID(n)"); assertThat(mapper.writeValueAsString(query.getParameters())).isEqualTo("{\"ref_0\":\"45 Eugenia\"}"); }
/** * @throws Exception * @see DATAGRAPH-595 */ @Test public void testFindByPropertyInfiniteDepth() throws Exception { assertThat(queryStatements.findByType("Asteroid", new Filters().add(new Filter("diameter", EQUALS, 60.2)), -1) .getStatement()).isEqualTo( "MATCH (n:`Asteroid`) WHERE n.`diameter` = { `diameter_0` } WITH n MATCH p=(n)-[*0..]-(m) RETURN p, ID(n)"); }
/** * @see Issue 73 */ @Test(expected = MissingOperatorException.class) public void testFindByMultipleAndPropertiesWithMissingBooleanOperator() { Filter nameParam = new Filter("name", ComparisonOperator.EQUALS, "AST-1"); Filter diameterParam = new Filter("diameter", ComparisonOperator.LESS_THAN, 60); queryStatements.findByType("Asteroid", new Filters().add(nameParam).add(diameterParam), 2).getStatement(); } }
@Test public void testFindByProperty() throws Exception { assertThat( query.findByType("ORBITS", new Filters().add(new Filter("distance", EQUALS, 60.2)), 4).getStatement()) .isEqualTo("MATCH (n)-[r0:`ORBITS`]->(m) WHERE r0.`distance` = { `distance_0` } " + "WITH DISTINCT(r0) as r0,startnode(r0) AS n, endnode(r0) AS m MATCH p1 = (n)-[*0..4]-() " + "WITH r0, COLLECT(DISTINCT p1) AS startPaths, m MATCH p2 = (m)-[*0..4]-() " + "WITH r0, startPaths, COLLECT(DISTINCT p2) AS endPaths " + "WITH r0,startPaths + endPaths AS paths " + "UNWIND paths AS p RETURN DISTINCT p, ID(r0)"); }