summaryrefslogtreecommitdiff
path: root/src/mongo/dbtests/jsontests.cpp
diff options
context:
space:
mode:
authorShaun Verch <shaun.verch@10gen.com>2013-11-26 16:33:31 -0500
committerShaun Verch <shaun.verch@10gen.com>2013-12-02 12:52:17 -0500
commitbad97aeec714c895fa23ee90aebbffeacc6d621d (patch)
tree7a8822e762ec81bbf83a2417c5a7f4448b9d6bec /src/mongo/dbtests/jsontests.cpp
parent7fd22c5572a53ee0491f4a7bf6d8440be9ea60df (diff)
downloadmongo-bad97aeec714c895fa23ee90aebbffeacc6d621d.tar.gz
SERVER-11867 Support numberLong object in strict JSON
Diffstat (limited to 'src/mongo/dbtests/jsontests.cpp')
-rw-r--r--src/mongo/dbtests/jsontests.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/mongo/dbtests/jsontests.cpp b/src/mongo/dbtests/jsontests.cpp
index 37b8ee46054..4609879ec77 100644
--- a/src/mongo/dbtests/jsontests.cpp
+++ b/src/mongo/dbtests/jsontests.cpp
@@ -137,6 +137,37 @@ namespace JsonTests {
}
};
+ class NumberLongStrict {
+ public:
+ void run() {
+ BSONObjBuilder b;
+ b.append("a", 20000LL);
+ ASSERT_EQUALS("{ \"a\" : { \"$numberLong\" : \"20000\" } }",
+ b.done().jsonString(Strict));
+ }
+ };
+
+ // Test a NumberLong that is too big to fit into a 32 bit integer
+ class NumberLongStrictLarge {
+ public:
+ void run() {
+ BSONObjBuilder b;
+ b.append("a", 9223372036854775807LL);
+ ASSERT_EQUALS("{ \"a\" : { \"$numberLong\" : \"9223372036854775807\" } }",
+ b.done().jsonString(Strict));
+ }
+ };
+
+ class NumberLongStrictNegative {
+ public:
+ void run() {
+ BSONObjBuilder b;
+ b.append("a", -20000LL);
+ ASSERT_EQUALS("{ \"a\" : { \"$numberLong\" : \"-20000\" } }",
+ b.done().jsonString(Strict));
+ }
+ };
+
class SingleBoolMember {
public:
void run() {
@@ -2477,6 +2508,9 @@ namespace JsonTests {
add< JsonStringTests::InvalidNumbers >();
add< JsonStringTests::NumberPrecision >();
add< JsonStringTests::NegativeNumber >();
+ add< JsonStringTests::NumberLongStrict >();
+ add< JsonStringTests::NumberLongStrictLarge >();
+ add< JsonStringTests::NumberLongStrictNegative >();
add< JsonStringTests::SingleBoolMember >();
add< JsonStringTests::SingleNullMember >();
add< JsonStringTests::SingleUndefinedMember >();