<filename>jstests/tool/dumprestore1.js
// 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, "mongoldump 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, "mongolrestore should return failure code" );
t.stop();
ret = t.runTool( "restore" , "--db" , "db", "--dir", "-" );
assert.neq( ret, 0, "mongolrestore should return failure code" );
t.stop();
