summaryrefslogtreecommitdiff
path: root/src/mongo/db/ops/modifier_push_sorter_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/ops/modifier_push_sorter_test.cpp')
-rw-r--r--src/mongo/db/ops/modifier_push_sorter_test.cpp232
1 files changed, 116 insertions, 116 deletions
diff --git a/src/mongo/db/ops/modifier_push_sorter_test.cpp b/src/mongo/db/ops/modifier_push_sorter_test.cpp
index 4df1c4dfadc..d60eea1e942 100644
--- a/src/mongo/db/ops/modifier_push_sorter_test.cpp
+++ b/src/mongo/db/ops/modifier_push_sorter_test.cpp
@@ -37,143 +37,143 @@
namespace {
- using mongo::BSONObj;
- using mongo::fromjson;
- using mongo::PatternElementCmp;
- using mongo::mutablebson::Document;
- using mongo::mutablebson::Element;
- using mongo::mutablebson::sortChildren;
-
- class ObjectArray : public mongo::unittest::Test {
- public:
- ObjectArray() : _doc(), _size(0) {}
-
- virtual void setUp() {
- Element arr = _doc.makeElementArray("x");
- ASSERT_TRUE(arr.ok());
- ASSERT_OK(_doc.root().pushBack(arr));
- }
-
- void addObj(BSONObj obj) {
- ASSERT_LESS_THAN_OR_EQUALS(_size, 3u);
- _objs[_size] = obj;
- _size++;
-
- ASSERT_OK(_doc.root()["x"].appendObject(mongo::StringData(), obj));
- }
-
- BSONObj getOrigObj(size_t i) {
- return _objs[i];
- }
-
- BSONObj getSortedObj(size_t i) {
- return getArray()[i].getValueObject();
- }
-
- Element getArray() {
- return _doc.root()["x"];
- }
-
- private:
- Document _doc;
- BSONObj _objs[3];
- size_t _size;
- };
-
- TEST_F(ObjectArray, NormalOrder) {
- addObj(fromjson("{b:1, a:1}"));
- addObj(fromjson("{a:3, b:2}"));
- addObj(fromjson("{b:3, a:2}"));
-
- sortChildren(getArray(), PatternElementCmp(fromjson("{'a':1,'b':1}")));
-
- ASSERT_EQUALS(getOrigObj(0), getSortedObj(0));
- ASSERT_EQUALS(getOrigObj(1), getSortedObj(2));
- ASSERT_EQUALS(getOrigObj(2), getSortedObj(1));
+using mongo::BSONObj;
+using mongo::fromjson;
+using mongo::PatternElementCmp;
+using mongo::mutablebson::Document;
+using mongo::mutablebson::Element;
+using mongo::mutablebson::sortChildren;
+
+class ObjectArray : public mongo::unittest::Test {
+public:
+ ObjectArray() : _doc(), _size(0) {}
+
+ virtual void setUp() {
+ Element arr = _doc.makeElementArray("x");
+ ASSERT_TRUE(arr.ok());
+ ASSERT_OK(_doc.root().pushBack(arr));
}
- TEST_F(ObjectArray, MixedOrder) {
- addObj(fromjson("{b:1, a:1}"));
- addObj(fromjson("{a:3, b:2}"));
- addObj(fromjson("{b:3, a:2}"));
+ void addObj(BSONObj obj) {
+ ASSERT_LESS_THAN_OR_EQUALS(_size, 3u);
+ _objs[_size] = obj;
+ _size++;
- sortChildren(getArray(), PatternElementCmp(fromjson("{b:1,a:-1}")));
-
- ASSERT_EQUALS(getOrigObj(0), getSortedObj(0));
- ASSERT_EQUALS(getOrigObj(1), getSortedObj(1));
- ASSERT_EQUALS(getOrigObj(2), getSortedObj(2));
+ ASSERT_OK(_doc.root()["x"].appendObject(mongo::StringData(), obj));
}
- TEST_F(ObjectArray, ExtraFields) {
- addObj(fromjson("{b:1, c:2, a:1}"));
- addObj(fromjson("{c:1, a:3, b:2}"));
- addObj(fromjson("{b:3, a:2}"));
+ BSONObj getOrigObj(size_t i) {
+ return _objs[i];
+ }
- sortChildren(getArray(), PatternElementCmp(fromjson("{a:1,b:1}")));
+ BSONObj getSortedObj(size_t i) {
+ return getArray()[i].getValueObject();
+ }
- ASSERT_EQUALS(getOrigObj(0), getSortedObj(0));
- ASSERT_EQUALS(getOrigObj(1), getSortedObj(2));
- ASSERT_EQUALS(getOrigObj(2), getSortedObj(1));
+ Element getArray() {
+ return _doc.root()["x"];
}
- TEST_F(ObjectArray, MissingFields) {
- addObj(fromjson("{a:2, b:2}"));
- addObj(fromjson("{a:1}"));
- addObj(fromjson("{a:3, b:3, c:3}"));
+private:
+ Document _doc;
+ BSONObj _objs[3];
+ size_t _size;
+};
- sortChildren(getArray(), PatternElementCmp(fromjson("{b:1,c:1}")));
+TEST_F(ObjectArray, NormalOrder) {
+ addObj(fromjson("{b:1, a:1}"));
+ addObj(fromjson("{a:3, b:2}"));
+ addObj(fromjson("{b:3, a:2}"));
- ASSERT_EQUALS(getOrigObj(0), getSortedObj(1));
- ASSERT_EQUALS(getOrigObj(1), getSortedObj(0));
- ASSERT_EQUALS(getOrigObj(2), getSortedObj(2));
- }
+ sortChildren(getArray(), PatternElementCmp(fromjson("{'a':1,'b':1}")));
- TEST_F(ObjectArray, NestedFields) {
- addObj(fromjson("{a:{b:{c:2, d:0}}}"));
- addObj(fromjson("{a:{b:{c:1, d:2}}}"));
- addObj(fromjson("{a:{b:{c:3, d:1}}}"));
+ ASSERT_EQUALS(getOrigObj(0), getSortedObj(0));
+ ASSERT_EQUALS(getOrigObj(1), getSortedObj(2));
+ ASSERT_EQUALS(getOrigObj(2), getSortedObj(1));
+}
- sortChildren(getArray(), PatternElementCmp(fromjson("{'a.b':1}")));
+TEST_F(ObjectArray, MixedOrder) {
+ addObj(fromjson("{b:1, a:1}"));
+ addObj(fromjson("{a:3, b:2}"));
+ addObj(fromjson("{b:3, a:2}"));
- ASSERT_EQUALS(getOrigObj(0), getSortedObj(1));
- ASSERT_EQUALS(getOrigObj(1), getSortedObj(0));
- ASSERT_EQUALS(getOrigObj(2), getSortedObj(2));
- }
+ sortChildren(getArray(), PatternElementCmp(fromjson("{b:1,a:-1}")));
- TEST_F(ObjectArray, SimpleNestedFields) {
- addObj(fromjson("{a:{b: -1}}"));
- addObj(fromjson("{a:{b: -100}}"));
- addObj(fromjson("{a:{b: 34}}"));
+ ASSERT_EQUALS(getOrigObj(0), getSortedObj(0));
+ ASSERT_EQUALS(getOrigObj(1), getSortedObj(1));
+ ASSERT_EQUALS(getOrigObj(2), getSortedObj(2));
+}
- sortChildren(getArray(), PatternElementCmp(fromjson("{'a.b':1}")));
+TEST_F(ObjectArray, ExtraFields) {
+ addObj(fromjson("{b:1, c:2, a:1}"));
+ addObj(fromjson("{c:1, a:3, b:2}"));
+ addObj(fromjson("{b:3, a:2}"));
- ASSERT_EQUALS(getOrigObj(0), getSortedObj(1));
- ASSERT_EQUALS(getOrigObj(1), getSortedObj(0));
- ASSERT_EQUALS(getOrigObj(2), getSortedObj(2));
- }
+ sortChildren(getArray(), PatternElementCmp(fromjson("{a:1,b:1}")));
- TEST_F(ObjectArray, NestedInnerObjectDescending) {
- addObj(fromjson("{a:{b:{c:2, d:0}}}"));
- addObj(fromjson("{a:{b:{c:1, d:2}}}"));
- addObj(fromjson("{a:{b:{c:3, d:1}}}"));
+ ASSERT_EQUALS(getOrigObj(0), getSortedObj(0));
+ ASSERT_EQUALS(getOrigObj(1), getSortedObj(2));
+ ASSERT_EQUALS(getOrigObj(2), getSortedObj(1));
+}
- sortChildren(getArray(), PatternElementCmp(fromjson("{'a.b.d':-1}")));
+TEST_F(ObjectArray, MissingFields) {
+ addObj(fromjson("{a:2, b:2}"));
+ addObj(fromjson("{a:1}"));
+ addObj(fromjson("{a:3, b:3, c:3}"));
- ASSERT_EQUALS(getOrigObj(0), getSortedObj(2));
- ASSERT_EQUALS(getOrigObj(1), getSortedObj(0));
- ASSERT_EQUALS(getOrigObj(2), getSortedObj(1));
- }
+ sortChildren(getArray(), PatternElementCmp(fromjson("{b:1,c:1}")));
- TEST_F(ObjectArray, NestedInnerObjectAscending) {
- addObj(fromjson("{a:{b:{c:2, d:0}}}"));
- addObj(fromjson("{a:{b:{c:1, d:2}}}"));
- addObj(fromjson("{a:{b:{c:3, d:1}}}"));
+ ASSERT_EQUALS(getOrigObj(0), getSortedObj(1));
+ ASSERT_EQUALS(getOrigObj(1), getSortedObj(0));
+ ASSERT_EQUALS(getOrigObj(2), getSortedObj(2));
+}
- sortChildren(getArray(), PatternElementCmp(fromjson("{'a.b.d':1}")));
+TEST_F(ObjectArray, NestedFields) {
+ addObj(fromjson("{a:{b:{c:2, d:0}}}"));
+ addObj(fromjson("{a:{b:{c:1, d:2}}}"));
+ addObj(fromjson("{a:{b:{c:3, d:1}}}"));
- ASSERT_EQUALS(getOrigObj(0), getSortedObj(0));
- ASSERT_EQUALS(getOrigObj(2), getSortedObj(1));
- ASSERT_EQUALS(getOrigObj(1), getSortedObj(2));
- }
+ sortChildren(getArray(), PatternElementCmp(fromjson("{'a.b':1}")));
+
+ ASSERT_EQUALS(getOrigObj(0), getSortedObj(1));
+ ASSERT_EQUALS(getOrigObj(1), getSortedObj(0));
+ ASSERT_EQUALS(getOrigObj(2), getSortedObj(2));
+}
+
+TEST_F(ObjectArray, SimpleNestedFields) {
+ addObj(fromjson("{a:{b: -1}}"));
+ addObj(fromjson("{a:{b: -100}}"));
+ addObj(fromjson("{a:{b: 34}}"));
+
+ sortChildren(getArray(), PatternElementCmp(fromjson("{'a.b':1}")));
+
+ ASSERT_EQUALS(getOrigObj(0), getSortedObj(1));
+ ASSERT_EQUALS(getOrigObj(1), getSortedObj(0));
+ ASSERT_EQUALS(getOrigObj(2), getSortedObj(2));
+}
+
+TEST_F(ObjectArray, NestedInnerObjectDescending) {
+ addObj(fromjson("{a:{b:{c:2, d:0}}}"));
+ addObj(fromjson("{a:{b:{c:1, d:2}}}"));
+ addObj(fromjson("{a:{b:{c:3, d:1}}}"));
+
+ sortChildren(getArray(), PatternElementCmp(fromjson("{'a.b.d':-1}")));
+
+ ASSERT_EQUALS(getOrigObj(0), getSortedObj(2));
+ ASSERT_EQUALS(getOrigObj(1), getSortedObj(0));
+ ASSERT_EQUALS(getOrigObj(2), getSortedObj(1));
+}
+
+TEST_F(ObjectArray, NestedInnerObjectAscending) {
+ addObj(fromjson("{a:{b:{c:2, d:0}}}"));
+ addObj(fromjson("{a:{b:{c:1, d:2}}}"));
+ addObj(fromjson("{a:{b:{c:3, d:1}}}"));
+
+ sortChildren(getArray(), PatternElementCmp(fromjson("{'a.b.d':1}")));
+
+ ASSERT_EQUALS(getOrigObj(0), getSortedObj(0));
+ ASSERT_EQUALS(getOrigObj(2), getSortedObj(1));
+ ASSERT_EQUALS(getOrigObj(1), getSortedObj(2));
+}
-} // unnamed namespace
+} // unnamed namespace