// dumprestore1.js


t = new ToolTest( "dumprestore1" );

c = t.startDB( "foo" );
assert.eq( 0 , c.count() , "setup1" );
c.save( { a : 22 } );
assert.eq( 1 , c.count() , "setup2" );

t.runTool( "dump" , "--out" , t.ext );

c.drop();
assert.eq( 0 , c.count() , "after drop" );

t.runTool( "restore" , "--dir" , t.ext );
assert.soon( "c.findOne()" , "no data after sleep" );
assert.eq( 1 , c.count() , "after restore 2" );
assert.eq( 22 , c.findOne().a , "after restore 2" );

// ensure that --collection is used with --db. See SERVER-7721
var ret = t.runTool( "dump" , "--collection" , "col" );
assert.neq( ret, 0, "mongodump should return failure code" );
t.stop();

// Ensure that --db and --collection are provided when filename is "-" (stdin).
ret = t.runTool( "restore" , "--collection" , "coll", "--dir", "-" );
assert.neq( ret, 0, "mongorestore should return failure code" );
t.stop();
ret = t.runTool( "restore" , "--db" , "db", "--dir", "-" );
assert.neq( ret, 0, "mongorestore should return failure code" );
t.stop();
