From 680dd7b1f919da75ff377cf21e5499cf0bcbceda Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Thu, 21 Jul 2022 22:01:45 +0200
Subject: [PATCH] TST: confirm
 https://gitlab.com/caosdb/caosdb-server/-/issues/160

---
 .../java/org/caosdb/server/query/Query.java   |  4 ++
 .../java/org/caosdb/server/query/TestCQL.java | 47 +++++++++++++++++++
 2 files changed, 51 insertions(+)

diff --git a/src/main/java/org/caosdb/server/query/Query.java b/src/main/java/org/caosdb/server/query/Query.java
index 07a165a3..864c73c0 100644
--- a/src/main/java/org/caosdb/server/query/Query.java
+++ b/src/main/java/org/caosdb/server/query/Query.java
@@ -1053,4 +1053,8 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac
   public UTCDateTime getTimestamp() {
     return null;
   }
+
+  public List<ToElementable> getMessages() {
+    return messages;
+  }
 }
diff --git a/src/test/java/org/caosdb/server/query/TestCQL.java b/src/test/java/org/caosdb/server/query/TestCQL.java
index 3217d422..31c72f7b 100644
--- a/src/test/java/org/caosdb/server/query/TestCQL.java
+++ b/src/test/java/org/caosdb/server/query/TestCQL.java
@@ -278,6 +278,11 @@ public class TestCQL {
       "SELECT 'name with spaces.and dot', 'name with spaces'.name, name with spaces.name, name with\\,comma and\\.dot and \\'single_quote.sub FROM ENTITY";
   String issue130b = "SELECT 'Wrapper' FROM RECORD TestRT";
 
+  // https://gitlab.com/caosdb/caosdb-server/-/issues/160
+  String issue160a = "FIND ename WITH pname => val";
+  String issue160b = "FIND ename WITH pname =< val";
+  String issue160c = "FIND ename WITH pname =! val";
+
   @Test
   public void testQuery1()
       throws InterruptedException, SQLException, ConnectionException, QueryException {
@@ -6989,4 +6994,46 @@ public class TestCQL {
     assertEquals("Wrapper", sfq.s.get(0).getSelector());
     assertNull(sfq.s.get(0).getSubselection());
   }
+
+  // TODO fix https://gitlab.com/caosdb/caosdb-server/-/issues/160
+  @Test(expected = IndexOutOfBoundsException.class)
+  public void testIssue40a() {
+
+    Query q = new Query(this.issue160a);
+
+    try {
+      q.parse();
+    } catch (Query.ParsingException e) {
+      // ignore for now
+    }
+    assertEquals(q.getMessages().get(0), "Appropriate Error");
+  }
+
+  // TODO fix https://gitlab.com/caosdb/caosdb-server/-/issues/160
+  @Test(expected = IndexOutOfBoundsException.class)
+  public void testIssue40b() {
+
+    Query q = new Query(this.issue160b);
+
+    try {
+      q.parse();
+    } catch (Query.ParsingException e) {
+      // ignore for now
+    }
+    assertEquals(q.getMessages().get(0), "Appropriate Error");
+  }
+
+  // TODO fix https://gitlab.com/caosdb/caosdb-server/-/issues/160
+  @Test(expected = IndexOutOfBoundsException.class)
+  public void testIssue40c() {
+
+    Query q = new Query(this.issue160c);
+
+    try {
+      q.parse();
+    } catch (Query.ParsingException e) {
+      // ignore for now
+    }
+    assertEquals(q.getMessages().get(0), "Appropriate Error");
+  }
 }
-- 
GitLab