diff options
Diffstat (limited to 'src/mongo/db/matcher/expression_serialization_test.cpp')
-rw-r--r-- | src/mongo/db/matcher/expression_serialization_test.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mongo/db/matcher/expression_serialization_test.cpp b/src/mongo/db/matcher/expression_serialization_test.cpp index 6e6b85bb259..428bf0a291f 100644 --- a/src/mongo/db/matcher/expression_serialization_test.cpp +++ b/src/mongo/db/matcher/expression_serialization_test.cpp @@ -1073,5 +1073,23 @@ TEST(SerializeInternalSchema, ExpressionInternalSchemaMaxPropertiesSerializesCor ASSERT_BSONOBJ_EQ(*reserialized.getQuery(), serialize(reserialized.getMatchExpression())); } +TEST(SerializeInternalSchema, ExpressionInternalSchemaFmodSerializesCorrectly) { + Matcher original( + fromjson("{a: {$_internalSchemaFmod: [NumberDecimal('2.3'), NumberDecimal('1.1')]}}"), + ExtensionsCallbackNoop(), + kSimpleCollator); + Matcher reserialized( + serialize(original.getMatchExpression()), ExtensionsCallbackNoop(), kSimpleCollator); + + ASSERT_BSONOBJ_EQ( + *reserialized.getQuery(), + fromjson("{a: {$_internalSchemaFmod: [NumberDecimal('2.3'), NumberDecimal('1.1')]}}")); + ASSERT_BSONOBJ_EQ(*reserialized.getQuery(), serialize(reserialized.getMatchExpression())); + BSONObj obj = fromjson("{a: NumberDecimal('1.1')}"); + ASSERT_EQ(original.matches(obj), reserialized.matches(obj)); + obj = fromjson("{a: NumberDecimal('2.3')}"); + ASSERT_EQ(original.matches(obj), reserialized.matches(obj)); +} + } // namespace } // namespace mongo |