Mercurial > hg > thermostat-ng > web-gateway
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=")); } }