4
#include "../client/dbclient.h"
6
#include "../db/concurrency.h"
8
namespace ClientTests {
14
_ns = (string)"test." + coll;
18
db.dropCollection( _ns );
21
const char * ns(){ return _ns.c_str(); }
28
class DropIndex : public Base {
30
DropIndex() : Base( "dropindex" ){}
32
db.insert( ns() , BSON( "x" << 2 ) );
33
ASSERT_EQUALS( 1 , db.getIndexes( ns() )->itcount() );
35
db.ensureIndex( ns() , BSON( "x" << 1 ) );
36
ASSERT_EQUALS( 2 , db.getIndexes( ns() )->itcount() );
38
db.dropIndex( ns() , BSON( "x" << 1 ) );
39
ASSERT_EQUALS( 1 , db.getIndexes( ns() )->itcount() );
41
db.ensureIndex( ns() , BSON( "x" << 1 ) );
42
ASSERT_EQUALS( 2 , db.getIndexes( ns() )->itcount() );
44
db.dropIndexes( ns() );
45
ASSERT_EQUALS( 1 , db.getIndexes( ns() )->itcount() );
49
class ReIndex : public Base {
51
ReIndex() : Base( "reindex" ){}
54
db.insert( ns() , BSON( "x" << 2 ) );
55
ASSERT_EQUALS( 1 , db.getIndexes( ns() )->itcount() );
57
db.ensureIndex( ns() , BSON( "x" << 1 ) );
58
ASSERT_EQUALS( 2 , db.getIndexes( ns() )->itcount() );
61
ASSERT_EQUALS( 2 , db.getIndexes( ns() )->itcount() );
66
class ReIndex2 : public Base {
68
ReIndex2() : Base( "reindex2" ){}
71
db.insert( ns() , BSON( "x" << 2 ) );
72
ASSERT_EQUALS( 1 , db.getIndexes( ns() )->itcount() );
74
db.ensureIndex( ns() , BSON( "x" << 1 ) );
75
ASSERT_EQUALS( 2 , db.getIndexes( ns() )->itcount() );
78
ASSERT( db.runCommand( "test" , BSON( "reIndex" << "reindex2" ) , out ) );
79
ASSERT_EQUALS( 2 , out["nIndexes"].number() );
80
ASSERT_EQUALS( 2 , db.getIndexes( ns() )->itcount() );
86
class All : public Suite {
88
All() : Suite( "client" ){