From 71f1c74b13aed7c0e8d5e1cb6897cf32f21c697f Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Tue, 26 Nov 2019 21:10:29 +0100 Subject: [PATCH] TST: query parser tests (backref like pattern) --- .../java/caosdb/server/query/TestCQL.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/test/java/caosdb/server/query/TestCQL.java b/src/test/java/caosdb/server/query/TestCQL.java index cae8b261..d5a93957 100644 --- a/src/test/java/caosdb/server/query/TestCQL.java +++ b/src/test/java/caosdb/server/query/TestCQL.java @@ -230,6 +230,8 @@ public class TestCQL { String filepath_pat03 = "/foo\\\\\\\\*/"; // -> \\\\* (4) String filepath_pat04 = "/foo**/"; + String referenceByLikePattern = "FIND ENTITY WHICH IS REFERENCED BY *name*"; + @Test public void testQuery1() throws InterruptedException, SQLException, ConnectionException, QueryException { @@ -6154,4 +6156,26 @@ public class TestCQL { assertTrue(StoredAt.requiresPatternMatching(filepath_pat03)); assertTrue(StoredAt.requiresPatternMatching(filepath_pat04)); } + + /** String referenceByLikePattern = "FIND ENTITY WHICH IS REFERENCED BY *name*"; */ + @Test + public void testReferencedByLike() { + CQLLexer lexer; + lexer = new CQLLexer(CharStreams.fromString(this.referenceByLikePattern)); + final CommonTokenStream tokens = new CommonTokenStream(lexer); + + final CQLParser parser = new CQLParser(tokens); + final CqContext sfq = parser.cq(); + + assertEquals(Query.Role.ENTITY, sfq.r); + assertNotNull(sfq.filter); + assertEquals(Backreference.class.getName(), sfq.filter.getClass().getName()); + final EntityFilterInterface f = sfq.filter; + + assertNotNull(f); + assertEquals("@(%name%,null)", f.toString()); + + assertTrue(f instanceof Backreference); + assertEquals("%name%", ((Backreference) f).getEntity()); + } } -- GitLab