From a69ae445303fc4821c6745866b3902623a385c1c Mon Sep 17 00:00:00 2001 From: Geert Bosch Date: Thu, 15 Jun 2017 00:20:33 -0400 Subject: SERVER-27992 Use UUIDs for replication --- src/mongo/bson/bson_obj_test.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/mongo/bson/bson_obj_test.cpp') diff --git a/src/mongo/bson/bson_obj_test.cpp b/src/mongo/bson/bson_obj_test.cpp index 890d3c4580f..5a9360605d5 100644 --- a/src/mongo/bson/bson_obj_test.cpp +++ b/src/mongo/bson/bson_obj_test.cpp @@ -608,4 +608,24 @@ TEST(BSONObj, ShareOwnershipWith) { ASSERT_BSONOBJ_EQ(obj, BSON("a" << 1)); } +TEST(BSONObj, addField) { + auto obj = BSON("a" << 1 << "b" << 2); + + // Check that replacing a field maintains the same ordering and doesn't add a field. + auto objA2 = BSON("a" << 2); + auto elemA2 = objA2.firstElement(); + auto addFieldA2 = obj.addField(elemA2); + ASSERT_EQ(addFieldA2.nFields(), 2); + ASSERT_BSONOBJ_EQ(addFieldA2, BSON("a" << 2 << "b" << 2)); + + // Check that adding a new field places it at the end. + auto objC3 = BSON("c" << 3); + auto elemC3 = objC3.firstElement(); + auto addFieldC3 = obj.addField(elemC3); + ASSERT_BSONOBJ_EQ(addFieldC3, BSON("a" << 1 << "b" << 2 << "c" << 3)); + + // Check that after all this obj is unchanged. + ASSERT_BSONOBJ_EQ(obj, BSON("a" << 1 << "b" << 2)); +} + } // unnamed namespace -- cgit v1.2.1