/
home
/
obinna
/
html
/
restaurants
/
vendor
/
mongodb
/
mongodb
/
tests
/
Operation
/
Upload File
HOME
<?php namespace MongoDB\Tests\Operation; use MongoDB\Operation\DropCollection; use MongoDB\Operation\InsertOne; use MongoDB\Operation\ListCollections; use MongoDB\Tests\CommandObserver; use function sprintf; use function version_compare; class DropCollectionFunctionalTest extends FunctionalTestCase { public function testDefaultWriteConcernIsOmitted() { (new CommandObserver())->observe( function () { $operation = new DropCollection( $this->getDatabaseName(), $this->getCollectionName(), ['writeConcern' => $this->createDefaultWriteConcern()] ); $operation->execute($this->getPrimaryServer()); }, function (array $event) { $this->assertObjectNotHasAttribute('writeConcern', $event['started']->getCommand()); } ); } public function testDropExistingCollection() { $server = $this->getPrimaryServer(); $insertOne = new InsertOne($this->getDatabaseName(), $this->getCollectionName(), ['x' => 1]); $writeResult = $insertOne->execute($server); $this->assertEquals(1, $writeResult->getInsertedCount()); $operation = new DropCollection($this->getDatabaseName(), $this->getCollectionName()); $commandResult = $operation->execute($server); $this->assertCommandSucceeded($commandResult); $this->assertCollectionDoesNotExist($this->getCollectionName()); } /** * @depends testDropExistingCollection */ public function testDropNonexistentCollection() { $this->assertCollectionDoesNotExist($this->getCollectionName()); $operation = new DropCollection($this->getDatabaseName(), $this->getCollectionName()); $commandResult = $operation->execute($this->getPrimaryServer()); /* Avoid inspecting the result document as mongos returns {ok:1.0}, * which is inconsistent from the expected mongod response of {ok:0}. */ $this->assertIsObject($commandResult); } public function testSessionOption() { if (version_compare($this->getServerVersion(), '3.6.0', '<')) { $this->markTestSkipped('Sessions are not supported'); } (new CommandObserver())->observe( function () { $operation = new DropCollection( $this->getDatabaseName(), $this->getCollectionName(), ['session' => $this->createSession()] ); $operation->execute($this->getPrimaryServer()); }, function (array $event) { $this->assertObjectHasAttribute('lsid', $event['started']->getCommand()); } ); } /** * Asserts that a collection with the given name does not exist on the * server. * * @param string $collectionName */ private function assertCollectionDoesNotExist($collectionName) { $operation = new ListCollections($this->getDatabaseName()); $collections = $operation->execute($this->getPrimaryServer()); $foundCollection = null; foreach ($collections as $collection) { if ($collection->getName() === $collectionName) { $foundCollection = $collection; break; } } $this->assertNull($foundCollection, sprintf('Collection %s exists', $collectionName)); } }