Skip to content

Commit

Permalink
new unist test for member of filter translator
Browse files Browse the repository at this point in the history
  • Loading branch information
Chandrasekar Rajasekar committed May 7, 2020
1 parent 7bb1fe7 commit 43ced02
Showing 1 changed file with 25 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,9 @@ public void testHQLQueryVisitor() throws Exception {
);
FilterPredicate p3 = new InPredicate(new Path(p3Path), "scifi");

List<Path.PathElement> p4Path = Arrays.asList(
new Path.PathElement(Book.class, String.class, "awards")
);
FilterPredicate p4 = new FilterPredicate(new Path(p4Path), Operator.HASMEMBER, Arrays.asList("award1"));

OrFilterExpression or1 = new OrFilterExpression(p2, p3);
OrFilterExpression or2 = new OrFilterExpression(or1, p4);
OrFilterExpression or = new OrFilterExpression(p2, p3);
AndFilterExpression and1 = new AndFilterExpression(p0, p1);
AndFilterExpression and2 = new AndFilterExpression(or2, and1);
AndFilterExpression and2 = new AndFilterExpression(or, and1);
NotFilterExpression not = new NotFilterExpression(and2);

FilterTranslator filterOp = new FilterTranslator();
Expand All @@ -78,14 +72,33 @@ public void testHQLQueryVisitor() throws Exception {
.map(FilterPredicate.FilterParameter::getPlaceholder).collect(Collectors.joining(", "));
String p3Params = p3.getParameters().stream()
.map(FilterPredicate.FilterParameter::getPlaceholder).collect(Collectors.joining(", "));
String p4Params = p4.getParameters().stream()
.map(FilterPredicate.FilterParameter::getPlaceholder).collect(Collectors.joining(", "));
String expected = "WHERE NOT ((((name IN (" + p2Params + ") OR genre IN (" + p3Params + ")) "
+ "OR " + p4Params + " MEMBER OF awards) "
String expected = "WHERE NOT (((name IN (" + p2Params + ") OR genre IN (" + p3Params + ")) "
+ "AND (authors IS NOT EMPTY AND authors.name IN (" + p1Params + "))))";
assertEquals(expected, query);
}

@Test
public void testMemberOfOperator() throws Exception {
List<Path.PathElement> path = Arrays.asList(
new Path.PathElement(Book.class, String.class, "awards")
);
FilterPredicate p1 = new FilterPredicate(new Path(path), Operator.HASMEMBER, Arrays.asList("awards1"));
FilterPredicate p2 = new FilterPredicate(new Path(path), Operator.HASNOMEMBER, Arrays.asList("awards2"));

AndFilterExpression and = new AndFilterExpression(p1, p2);

FilterTranslator filterOp = new FilterTranslator();
String query = filterOp.apply(and, false);

String p1Params = p1.getParameters().stream()
.map(FilterPredicate.FilterParameter::getPlaceholder).collect(Collectors.joining(", "));
String p2Params = p2.getParameters().stream()
.map(FilterPredicate.FilterParameter::getPlaceholder).collect(Collectors.joining(", "));
String expected = "WHERE (" + p1Params + " MEMBER OF awards "
+ "AND " + p2Params + " NOT MEMBER OF awards)";
assertEquals(expected, query);
}

@Test
public void testEmptyFieldOnPrefix() throws Exception {
FilterPredicate pred = new FilterPredicate(new Path.PathElement(Book.class, String.class, ""),
Expand Down

0 comments on commit 43ced02

Please sign in to comment.