summaryrefslogtreecommitdiff
path: root/src/mongo/bson/mutable/mutable_bson_test.cpp
diff options
context:
space:
mode:
authorAndrew Morrow <acm@10gen.com>2013-04-19 17:18:58 -0400
committerAndrew Morrow <acm@10gen.com>2013-04-19 17:43:23 -0400
commitf95e411f58f2a4dcaf9433c75d0c2dca4754e1a1 (patch)
treec308a5db2fc11114217fa4a3299664349cb166cc /src/mongo/bson/mutable/mutable_bson_test.cpp
parent9b37a3aa83655aa92c1d466e65500100e4d799cd (diff)
downloadmongo-f95e411f58f2a4dcaf9433c75d0c2dca4754e1a1.tar.gz
SERVER-8046 Fix an issue where array field names were not being ignored
Diffstat (limited to 'src/mongo/bson/mutable/mutable_bson_test.cpp')
-rw-r--r--src/mongo/bson/mutable/mutable_bson_test.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/mongo/bson/mutable/mutable_bson_test.cpp b/src/mongo/bson/mutable/mutable_bson_test.cpp
index 2f1dd67123e..d3738267ddc 100644
--- a/src/mongo/bson/mutable/mutable_bson_test.cpp
+++ b/src/mongo/bson/mutable/mutable_bson_test.cpp
@@ -1028,5 +1028,32 @@ namespace {
ASSERT_FALSE(doc.root().leftChild() == doc.root().rightChild());
}
+ TEST(Document, ArraySerialization) {
+
+ static const char inJson[] =
+ "{ "
+ " 'a' : { 'b' : [ 'c', 'd' ] } "
+ "}";
+
+ mongo::BSONObj inObj = mongo::fromjson(inJson);
+ mmb::Document doc(inObj);
+
+ mmb::Element root = doc.root();
+ mmb::Element a = root.leftChild();
+ mmb::Element b = a.leftChild();
+ mmb::Element new_array = doc.makeElementArray("XXX");
+ mmb::Element e = doc.makeElementString("e", "e");
+ new_array.pushBack(e);
+ b.pushBack(new_array);
+
+ static const char outJson[] =
+ "{ "
+ " 'a' : { 'b' : [ 'c', 'd', [ 'e' ] ] } "
+ "}";
+
+ const mongo::BSONObj outObj = doc.getObject();
+ ASSERT_EQUALS(mongo::fromjson(outJson), outObj);
+ }
+
} // namespace