diff options
author | Andrew Morrow <acm@10gen.com> | 2013-04-19 17:18:58 -0400 |
---|---|---|
committer | Andrew Morrow <acm@10gen.com> | 2013-04-19 17:43:23 -0400 |
commit | f95e411f58f2a4dcaf9433c75d0c2dca4754e1a1 (patch) | |
tree | c308a5db2fc11114217fa4a3299664349cb166cc /src/mongo/bson/mutable/mutable_bson_test.cpp | |
parent | 9b37a3aa83655aa92c1d466e65500100e4d799cd (diff) | |
download | mongo-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.cpp | 27 |
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 |