Mercurial > hg > thermostat-ng > web-gateway
changeset 180:823905fe645a
Fix multiple mongo relational queries appearing in one filter
Reviewed-by: jkang
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-June/023696.html
author | Christopher Koehler <chkoehle@redhat.com> |
---|---|
date | Thu, 15 Jun 2017 09:27:54 -0400 |
parents | 30a7fa71b76a |
children | 51a755a0361b |
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, 21 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/filters/MongoRequestFilters.java Wed Jun 14 13:59:56 2017 -0400 +++ b/common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/filters/MongoRequestFilters.java Thu Jun 15 09:27:54 2017 -0400 @@ -86,6 +86,7 @@ break; case "!=": filters.add(ne(key, value)); + break; case ">": filters.add(gt(key, value)); break;
--- a/common/mongodb/src/test/java/com/redhat/thermostat/gateway/common/mongodb/filters/MongoRequestFiltersTest.java Wed Jun 14 13:59:56 2017 -0400 +++ b/common/mongodb/src/test/java/com/redhat/thermostat/gateway/common/mongodb/filters/MongoRequestFiltersTest.java Thu Jun 15 09:27:54 2017 -0400 @@ -57,6 +57,8 @@ BsonDocument bsonDocument = filter.toBsonDocument(BsonDocument.class, MongoClient.getDefaultCodecRegistry()); assertEquals("b", bsonDocument.getDocument("a").getString("$lte").getValue()); + assertEquals(1, bsonDocument.size()); + assertEquals(1, bsonDocument.getDocument("a").size()); } @Test @@ -66,6 +68,8 @@ BsonDocument bsonDocument = filter.toBsonDocument(BsonDocument.class, MongoClient.getDefaultCodecRegistry()); assertEquals("b", bsonDocument.getDocument("a").getString("$gte").getValue()); + assertEquals(1, bsonDocument.size()); + assertEquals(1, bsonDocument.getDocument("a").size()); } @Test @@ -75,6 +79,8 @@ BsonDocument bsonDocument = filter.toBsonDocument(BsonDocument.class, MongoClient.getDefaultCodecRegistry()); assertEquals("b", bsonDocument.getString("a").getValue()); + assertEquals(1, bsonDocument.size()); + assertEquals(1, bsonDocument.size()); } @Test @@ -84,6 +90,8 @@ BsonDocument bsonDocument = filter.toBsonDocument(BsonDocument.class, MongoClient.getDefaultCodecRegistry()); assertEquals("b", bsonDocument.getDocument("a").getString("$ne").getValue()); + assertEquals(1, bsonDocument.size()); + assertEquals(1, bsonDocument.getDocument("a").size()); } @Test @@ -93,6 +101,8 @@ BsonDocument bsonDocument = filter.toBsonDocument(BsonDocument.class, MongoClient.getDefaultCodecRegistry()); assertEquals("b", bsonDocument.getDocument("a").getString("$lt").getValue()); + assertEquals(1, bsonDocument.size()); + assertEquals(1, bsonDocument.getDocument("a").size()); } @Test @@ -102,6 +112,8 @@ BsonDocument bsonDocument = filter.toBsonDocument(BsonDocument.class, MongoClient.getDefaultCodecRegistry()); assertEquals("b", bsonDocument.getDocument("a").getString("$gt").getValue()); + assertEquals(1, bsonDocument.size()); + assertEquals(1, bsonDocument.getDocument("a").size()); } @Test @@ -113,6 +125,9 @@ Bson filter = MongoRequestFilters.buildQueriesFilter(queries); BsonDocument bsonDocument = filter.toBsonDocument(BsonDocument.class, MongoClient.getDefaultCodecRegistry()); + assertEquals(2, bsonDocument.size()); + assertEquals(1, bsonDocument.getDocument("a").size()); + assertEquals(1, bsonDocument.getDocument("c").size()); assertEquals("b", bsonDocument.getDocument("a").getString("$gt").getValue()); assertEquals("d", bsonDocument.getDocument("c").getString("$lt").getValue()); } @@ -124,6 +139,8 @@ BsonDocument bsonDocument = filter.toBsonDocument(BsonDocument.class, MongoClient.getDefaultCodecRegistry()); assertEquals(25, bsonDocument.getDocument("a").getNumber("$gt").intValue()); + assertEquals(1, bsonDocument.size()); + assertEquals(1, bsonDocument.getDocument("a").size()); } @Test @@ -133,7 +150,10 @@ BsonDocument bsonDocument = filter.toBsonDocument(BsonDocument.class, MongoClient.getDefaultCodecRegistry()); assertEquals("25", bsonDocument.getDocument("a").getString("$gt").getValue()); + assertEquals(1, bsonDocument.size()); + assertEquals(1, bsonDocument.getDocument("a").size()); } + @Test public void testInvalid() { String query = "a";