summaryrefslogtreecommitdiff
path: root/src/mongo/dbtests/queryutiltests.cpp
diff options
context:
space:
mode:
authorAaron <aaron@10gen.com>2012-03-29 23:09:10 -0700
committerAaron <aaron@10gen.com>2012-04-06 21:48:54 -0700
commita4cd061f60ed902ffd4e4f7aae688623565a2d78 (patch)
treea1bad9ede816cb49425ae81a0b71a8783742756e /src/mongo/dbtests/queryutiltests.cpp
parent6a8f01b10c055ca8a3bf3ce1eaf7893a1b92b1c6 (diff)
downloadmongo-a4cd061f60ed902ffd4e4f7aae688623565a2d78.tar.gz
SERVER-5450 Extract validateCurrentInterval() from FieldRangeVectorIterator::advance().
Diffstat (limited to 'src/mongo/dbtests/queryutiltests.cpp')
-rw-r--r--src/mongo/dbtests/queryutiltests.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/mongo/dbtests/queryutiltests.cpp b/src/mongo/dbtests/queryutiltests.cpp
index 1fce06e36e4..87c644d2353 100644
--- a/src/mongo/dbtests/queryutiltests.cpp
+++ b/src/mongo/dbtests/queryutiltests.cpp
@@ -1263,6 +1263,26 @@ namespace QueryUtilTests {
}
};
+ class AdvanceRange : public Base {
+ BSONObj query() { return fromjson( "{a:{$gt:2,$lt:8}}" ); }
+ BSONObj index() { return fromjson( "{a:1}" ); }
+ void check() {
+ assertAdvanceToNext( BSON( "a" << 2 ) );
+ assertAdvanceToNext( BSON( "a" << 4 ) );
+ assertAdvanceToNext( BSON( "a" << 5 ) );
+ assertDoneAdvancing( BSON( "a" << 9 ) );
+ }
+ };
+
+ class AdvanceInRange : public Base {
+ BSONObj query() { return fromjson( "{a:{$in:[0,1]},b:{$gt:2,$lt:8}}" ); }
+ BSONObj index() { return fromjson( "{a:1,b:1}" ); }
+ void check() {
+ assertAdvanceToNext( BSON( "a" << 0 << "b" << 5 ) );
+ assertAdvanceToNext( BSON( "a" << 0 << "b" << 5 ) );
+ }
+ };
+
class AdvanceRangeIn : public Base {
BSONObj query() { return fromjson( "{a:{$gt:2,$lt:8},b:{$in:[0,1]}}" ); }
BSONObj index() { return fromjson( "{a:1,b:1}" ); }
@@ -1281,6 +1301,15 @@ namespace QueryUtilTests {
}
};
+ class AdvanceRangeRangeMultiple : public Base {
+ BSONObj query() { return fromjson( "{a:{$gt:2,$lt:8},b:{$gt:1,$lt:4}}" ); }
+ BSONObj index() { return fromjson( "{a:1,b:1}" ); }
+ void check() {
+ assertAdvanceToNext( BSON( "a" << 4 << "b" << 3 ) );
+ assertAdvanceToNext( BSON( "a" << 4 << "b" << 3 ) );
+ }
+ };
+
class AdvanceRangeRangeIn : public Base {
BSONObj query() { return fromjson( "{a:{$gt:2,$lt:8},b:{$gt:1,$lt:4},c:{$in:[6,7]}}" ); }
BSONObj index() { return fromjson( "{a:1,b:1,c:1}" ); }
@@ -1481,8 +1510,11 @@ namespace QueryUtilTests {
add<FieldRangeVectorIteratorTests::AdvanceToNextIntervalIntermediateEqualityCompound>();
add<FieldRangeVectorIteratorTests::BeforeLowerBound>();
add<FieldRangeVectorIteratorTests::AdvanceToNextExclusiveIntervalCompound>();
+ add<FieldRangeVectorIteratorTests::AdvanceRange>();
+ add<FieldRangeVectorIteratorTests::AdvanceInRange>();
add<FieldRangeVectorIteratorTests::AdvanceRangeIn>();
add<FieldRangeVectorIteratorTests::AdvanceRangeRange>();
+ add<FieldRangeVectorIteratorTests::AdvanceRangeRangeMultiple>();
add<FieldRangeVectorIteratorTests::AdvanceRangeRangeIn>();
add<FieldRangeVectorIteratorTests::AdvanceRangeMixedIn>();
add<FieldRangeVectorIteratorTests::AdvanceMixedMixedIn>();