<?php namespace yiiunit\extensions\mongodb\file; use yiiunit\extensions\mongodb\MongoDbTestCase; /** * @group mongodb */ class CollectionTest extends MongoDbTestCase { protected function tearDown() { $this->dropFileCollection('fs'); parent::tearDown(); } // Tests : public function testGetChunkCollection() { $collection = $this->getConnection()->getFileCollection(); $chunkCollection = $collection->getChunkCollection(); $this->assertTrue($chunkCollection instanceof \yii\mongodb\Collection); $this->assertTrue($chunkCollection->mongoCollection instanceof \MongoCollection); } public function testFind() { $collection = $this->getConnection()->getFileCollection(); $cursor = $collection->find(); $this->assertTrue($cursor instanceof \MongoGridFSCursor); } public function testInsertFile() { $collection = $this->getConnection()->getFileCollection(); $filename = __FILE__; $id = $collection->insertFile($filename); $this->assertTrue($id instanceof \MongoId); $files = $this->findAll($collection); $this->assertEquals(1, count($files)); /** @var $file \MongoGridFSFile */ $file = $files[0]; $this->assertEquals($filename, $file->getFilename()); $this->assertEquals(file_get_contents($filename), $file->getBytes()); } public function testInsertFileContent() { $collection = $this->getConnection()->getFileCollection(); $bytes = 'Test file content'; $id = $collection->insertFileContent($bytes); $this->assertTrue($id instanceof \MongoId); $files = $this->findAll($collection); $this->assertEquals(1, count($files)); /** @var $file \MongoGridFSFile */ $file = $files[0]; $this->assertEquals($bytes, $file->getBytes()); } /** * @depends testInsertFileContent */ public function testGet() { $collection = $this->getConnection()->getFileCollection(); $bytes = 'Test file content'; $id = $collection->insertFileContent($bytes); $file = $collection->get($id); $this->assertTrue($file instanceof \MongoGridFSFile); $this->assertEquals($bytes, $file->getBytes()); } /** * @depends testGet */ public function testDelete() { $collection = $this->getConnection()->getFileCollection(); $bytes = 'Test file content'; $id = $collection->insertFileContent($bytes); $this->assertTrue($collection->delete($id)); $file = $collection->get($id); $this->assertNull($file); } }