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";