Files
mongo/jstests/sharding/basic_drop_coll.js
Randolph Tan 0dd27a3602 SERVER-21139 Add more basic tests for drop collection
(cherry picked from commit e90ba97c1a)
2015-12-09 11:55:21 -05:00

55 lines
1.7 KiB
JavaScript

/**
* Basic test from the drop collection command on a sharded cluster that verifies collections are
* cleanuped up properly.
*/
(function() {
"use strict";
var st = new ShardingTest({ shards: 2 });
var testDB = st.s.getDB('test');
// Test dropping an unsharded collection.
assert.writeOK(testDB.bar.insert({ x: 1 }));
assert.neq(null, testDB.bar.findOne({ x: 1 }));
assert.commandWorked(testDB.runCommand({ drop: 'bar' }));
assert.eq(null, testDB.bar.findOne({ x: 1 }));
// Test dropping a sharded collection.
assert.commandWorked(st.s.adminCommand({ enableSharding: 'test' }));
st.ensurePrimaryShard('test', 'shard0000');
st.s.adminCommand({ shardCollection: 'test.user', key: { _id: 1 }});
st.s.adminCommand({ split: 'test.user', middle: { _id: 0 }});
assert.commandWorked(st.s.adminCommand({ moveChunk: 'test.user',
find: { _id: 0 },
to: 'shard0001' }));
assert.writeOK(testDB.user.insert({ _id: 10 }));
assert.writeOK(testDB.user.insert({ _id: -10 }));
assert.neq(null, st.d0.getDB('test').user.findOne({ _id: -10 }));
assert.neq(null, st.d1.getDB('test').user.findOne({ _id: 10 }));
var configDB = st.s.getDB('config');
var collDoc = configDB.collections.findOne({ _id: 'test.user' });
assert(!collDoc.dropped);
assert.eq(2, configDB.chunks.count({ ns: 'test.user' }));
assert.commandWorked(testDB.runCommand({ drop: 'user' }));
assert.eq(null, st.d0.getDB('test').user.findOne());
assert.eq(null, st.d1.getDB('test').user.findOne());
collDoc = configDB.collections.findOne({ _id: 'test.user' });
assert(collDoc.dropped);
assert.eq(0, configDB.chunks.count({ ns: 'test.user' }));
st.stop();
})();