summaryrefslogtreecommitdiff
path: root/src/mongo/db/field_ref_test.cpp
diff options
context:
space:
mode:
authorDavid Storch <david.storch@10gen.com>2018-08-22 18:44:59 -0400
committerDavid Storch <david.storch@10gen.com>2018-09-05 17:46:49 -0400
commitdf8b812c2b41635197c500577283929b1116efd7 (patch)
tree5c211c06e46c7b563481be4e58dd40d6477f875a /src/mongo/db/field_ref_test.cpp
parentb231de1297d81e08efcd3eb510f322fd719dd42f (diff)
downloadmongo-df8b812c2b41635197c500577283929b1116efd7.tar.gz
SERVER-36109 Provide planner with multikey metadata for $** indexes.
Diffstat (limited to 'src/mongo/db/field_ref_test.cpp')
-rw-r--r--src/mongo/db/field_ref_test.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/mongo/db/field_ref_test.cpp b/src/mongo/db/field_ref_test.cpp
index 60c143d5da8..654444bc472 100644
--- a/src/mongo/db/field_ref_test.cpp
+++ b/src/mongo/db/field_ref_test.cpp
@@ -799,4 +799,42 @@ TEST(RemoveLastPartLong, AppendThenSetPartThenRemove) {
ASSERT_EQUALS("a.b.0.d.1.f", path.dottedField());
}
+TEST(RemoveLastPartLong, FieldRefCopyConstructor) {
+ FieldRef original("a.b.c");
+ FieldRef copy = original;
+ ASSERT_EQ(original, copy);
+}
+
+TEST(RemoveLastPartLong, FieldRefCopyAssignment) {
+ FieldRef original("a.b.c");
+ FieldRef other("x.y.z");
+ ASSERT_NE(original, other);
+ other = original;
+ ASSERT_EQ(original, other);
+}
+
+TEST(RemoveLastPartLong, FieldRefFromCopyAssignmentIsValidAfterOriginalIsDeleted) {
+ FieldRef copy("x.y.z");
+ {
+ FieldRef original("a.b.c");
+ ASSERT_NE(original, copy);
+ copy = original;
+ }
+ ASSERT_EQ(copy, FieldRef("a.b.c"));
+}
+
+TEST(RemoveLastPartLong, FieldRefFromCopyAssignmentIsADeepCopy) {
+ FieldRef original("a.b.c");
+ FieldRef other("x.y.z");
+ ASSERT_NE(original, other);
+ other = original;
+ ASSERT_EQ(original, other);
+
+ original.setPart(1u, "foo");
+ original.appendPart("bar");
+ ASSERT_EQ(original, FieldRef("a.foo.c.bar"));
+
+ ASSERT_EQ(other, FieldRef("a.b.c"));
+}
+
} // namespace