summaryrefslogtreecommitdiff
path: root/src/mongo/db/field_ref_test.cpp
diff options
context:
space:
mode:
authorGreg Studer <greg@10gen.com>2014-09-19 13:30:00 -0400
committerGreg Studer <greg@10gen.com>2014-10-16 18:38:12 -0400
commit22f8b6259602a76f8d22cba8b1098f9e3c90a36f (patch)
tree7cf4bd3d8b5439c4e42ca1be7ee6161a69af73a2 /src/mongo/db/field_ref_test.cpp
parent02c1c52514c7d6b54ff2d6dd6a3c564c3543f0a5 (diff)
downloadmongo-22f8b6259602a76f8d22cba8b1098f9e3c90a36f.tar.gz
SERVER-14973 consolidate shard key parsing, cleanup shard key patterns
Diffstat (limited to 'src/mongo/db/field_ref_test.cpp')
-rw-r--r--src/mongo/db/field_ref_test.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/mongo/db/field_ref_test.cpp b/src/mongo/db/field_ref_test.cpp
index 5ea2009ac25..02390302190 100644
--- a/src/mongo/db/field_ref_test.cpp
+++ b/src/mongo/db/field_ref_test.cpp
@@ -277,4 +277,46 @@ namespace {
ASSERT_EQUALS( "", a.dottedField(6) );
}
+ TEST(DottedSubstring, Short) {
+ FieldRef path("a");
+ ASSERT_EQUALS(1u, path.numParts());
+ ASSERT_EQUALS("a", path.dottedSubstring(0, path.numParts()));
+ ASSERT_EQUALS("", path.dottedSubstring(1, path.numParts()));
+ ASSERT_EQUALS("", path.dottedSubstring(0, 0));
+ }
+
+ TEST(DottedSubstring, Empty) {
+ FieldRef path("");
+ ASSERT_EQUALS(0u, path.numParts());
+ ASSERT_EQUALS("", path.dottedSubstring(0, path.numParts()));
+ ASSERT_EQUALS("", path.dottedSubstring(1, path.numParts()));
+ ASSERT_EQUALS("", path.dottedSubstring(0, 0));
+ }
+
+ TEST(DottedSubstring, Nested) {
+ FieldRef path("a.b.c.d.e");
+ ASSERT_EQUALS(5u, path.numParts());
+
+ ASSERT_EQUALS("b.c.d.e", path.dottedSubstring(1, path.numParts()));
+ ASSERT_EQUALS("c.d.e", path.dottedSubstring(2, path.numParts()));
+ ASSERT_EQUALS("d.e", path.dottedSubstring(3, path.numParts()));
+ ASSERT_EQUALS("e", path.dottedSubstring(4, path.numParts()));
+ ASSERT_EQUALS("", path.dottedSubstring(5, path.numParts()));
+ ASSERT_EQUALS("", path.dottedSubstring(6, path.numParts()));
+
+ ASSERT_EQUALS("a.b.c.d.e", path.dottedSubstring(0, path.numParts()));
+ ASSERT_EQUALS("a.b.c.d", path.dottedSubstring(0, path.numParts() - 1));
+ ASSERT_EQUALS("a.b.c", path.dottedSubstring(0, path.numParts() - 2));
+ ASSERT_EQUALS("a.b", path.dottedSubstring(0, path.numParts() - 3));
+ ASSERT_EQUALS("a", path.dottedSubstring(0, path.numParts() - 4));
+ ASSERT_EQUALS("", path.dottedSubstring(0, path.numParts() - 5));
+ ASSERT_EQUALS("", path.dottedSubstring(0, path.numParts() - 6));
+
+ ASSERT_EQUALS("b.c.d", path.dottedSubstring(1, path.numParts() - 1));
+ ASSERT_EQUALS("b.c", path.dottedSubstring(1, path.numParts() - 2));
+ ASSERT_EQUALS("b", path.dottedSubstring(1, path.numParts() - 3));
+ ASSERT_EQUALS("", path.dottedSubstring(1, path.numParts() - 4));
+ ASSERT_EQUALS("", path.dottedSubstring(1, path.numParts() - 5));
+ }
+
} // namespace