You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							98 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
	
	
							98 lines
						
					
					
						
							2.3 KiB
						
					
					
				<?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); | 
						|
	} | 
						|
} |