changeset 181:51a755a0361b

Make error discovery more clear with json-related parsing or filtering Reviewed-by: jkang Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-June/023701.html
author Christopher Koehler <chkoehle@redhat.com>
date Fri, 16 Jun 2017 10:51:21 -0400
parents 823905fe645a
children dc3cb45b9eb4
files common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/filters/MongoRequestFilters.java common/mongodb/src/test/java/com/redhat/thermostat/gateway/common/mongodb/filters/MongoRequestFiltersTest.java
diffstat 2 files changed, 11 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/filters/MongoRequestFilters.java	Thu Jun 15 09:27:54 2017 -0400
+++ b/common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/filters/MongoRequestFilters.java	Fri Jun 16 10:51:21 2017 -0400
@@ -50,6 +50,7 @@
 import java.util.regex.Pattern;
 
 import org.bson.conversions.Bson;
+import org.bson.json.JsonParseException;
 
 public class MongoRequestFilters {
     public static Bson buildQueriesFilter(List<String> queries) {
@@ -94,6 +95,8 @@
                         filters.add(lt(key, value));
                         break;
                 }
+            } else {
+                throw new JsonParseException("No relation found in: " + filter);
             }
         }
         return and(filters);
--- a/common/mongodb/src/test/java/com/redhat/thermostat/gateway/common/mongodb/filters/MongoRequestFiltersTest.java	Thu Jun 15 09:27:54 2017 -0400
+++ b/common/mongodb/src/test/java/com/redhat/thermostat/gateway/common/mongodb/filters/MongoRequestFiltersTest.java	Fri Jun 16 10:51:21 2017 -0400
@@ -44,6 +44,7 @@
 
 import org.bson.BsonDocument;
 import org.bson.conversions.Bson;
+import org.bson.json.JsonParseException;
 import org.junit.Test;
 
 import com.mongodb.MongoClient;
@@ -154,11 +155,13 @@
         assertEquals(1, bsonDocument.getDocument("a").size());
     }
 
-    @Test
+    @Test(expected=JsonParseException.class)
     public void testInvalid() {
-        String query = "a";
-        Bson filter = MongoRequestFilters.buildQueriesFilter(Collections.singletonList(query));
-        BsonDocument bsonDocument = filter.toBsonDocument(BsonDocument.class, MongoClient.getDefaultCodecRegistry());
-        assertEquals(0, bsonDocument.getArray("$and").size());
+        MongoRequestFilters.buildQueriesFilter(Collections.singletonList("a"));
+    }
+
+    @Test(expected=JsonParseException.class)
+    public void testInvalidWithSymbols() {
+        MongoRequestFilters.buildQueriesFilter(Collections.singletonList("a="));
     }
 }