summaryrefslogtreecommitdiff
path: root/src/mongo/dbtests/jsontests.cpp
diff options
context:
space:
mode:
authorTyler Brock <tyler.brock@gmail.com>2014-06-19 14:38:00 -0400
committerTyler Brock <tyler.brock@gmail.com>2014-06-25 15:01:59 -0400
commitcdd1172ad392b8c2321e4e140b020edf8c97b7c9 (patch)
treef4588ef7f130a7ca28161154b1aeaae7d0539628 /src/mongo/dbtests/jsontests.cpp
parent11ea31ab1ac1109af219f7a36fb21dcf7dbbe5da (diff)
downloadmongo-cdd1172ad392b8c2321e4e140b020edf8c97b7c9.tar.gz
SERVER-14357: Add support for top level JSON Array
Diffstat (limited to 'src/mongo/dbtests/jsontests.cpp')
-rw-r--r--src/mongo/dbtests/jsontests.cpp31
1 files changed, 27 insertions, 4 deletions
diff --git a/src/mongo/dbtests/jsontests.cpp b/src/mongo/dbtests/jsontests.cpp
index c7aa8eedb8a..607e319a081 100644
--- a/src/mongo/dbtests/jsontests.cpp
+++ b/src/mongo/dbtests/jsontests.cpp
@@ -578,10 +578,10 @@ namespace JsonTests {
virtual ~Base() {}
void run() {
ASSERT( fromjson( json() ).valid() );
- assertEquals( bson(), fromjson( json() ), "mode: <default>" );
- assertEquals( bson(), fromjson( bson().jsonString( Strict ) ), "mode: strict" );
- assertEquals( bson(), fromjson( bson().jsonString( TenGen ) ), "mode: tengen" );
- assertEquals( bson(), fromjson( bson().jsonString( JS ) ), "mode: js" );
+ assertEquals( bson(), fromjson( tojson( bson() ) ), "mode: <default>" );
+ assertEquals( bson(), fromjson( tojson( bson(), Strict ) ), "mode: strict" );
+ assertEquals( bson(), fromjson( tojson( bson(), TenGen ) ), "mode: tengen" );
+ assertEquals( bson(), fromjson( tojson( bson(), JS ) ), "mode: js" );
}
protected:
virtual BSONObj bson() const = 0;
@@ -814,6 +814,27 @@ namespace JsonTests {
}
};
+ class TopLevelArrayEmpty : public Base {
+ virtual BSONObj bson() const {
+ return BSONArray();
+ }
+ virtual string json() const {
+ return "[]";
+ }
+ };
+
+ class TopLevelArray : public Base {
+ virtual BSONObj bson() const {
+ BSONArrayBuilder builder;
+ builder.append(123);
+ builder.append("abc");
+ return builder.arr();
+ }
+ virtual string json() const {
+ return "[ 123, \"abc\" ]";
+ }
+ };
+
class Array : public Base {
virtual BSONObj bson() const {
vector< int > arr;
@@ -2675,6 +2696,8 @@ namespace JsonTests {
add< FromJsonTests::Subobject >();
add< FromJsonTests::DeeplyNestedObject >();
add< FromJsonTests::ArrayEmpty >();
+ add< FromJsonTests::TopLevelArrayEmpty >();
+ add< FromJsonTests::TopLevelArray >();
add< FromJsonTests::Array >();
add< FromJsonTests::True >();
add< FromJsonTests::False >();