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.
		
		
		
		
		
			
		
			
				
					
					
						
							70 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							70 lines
						
					
					
						
							1.4 KiB
						
					
					
				| <?php | |
|  | |
| namespace yiiunit\extensions\mongodb\file; | |
|  | |
| use yii\mongodb\file\Query; | |
| use yiiunit\extensions\mongodb\MongoDbTestCase; | |
|  | |
| /** | |
|  * @group mongodb | |
|  */ | |
| class QueryTest extends MongoDbTestCase | |
| { | |
| 	protected function setUp() | |
| 	{ | |
| 		parent::setUp(); | |
| 		$this->setUpTestRows(); | |
| 	} | |
|  | |
| 	protected function tearDown() | |
| 	{ | |
| 		$this->dropFileCollection(); | |
| 		parent::tearDown(); | |
| 	} | |
|  | |
| 	/** | |
| 	 * Sets up test rows. | |
| 	 */ | |
| 	protected function setUpTestRows() | |
| 	{ | |
| 		$collection = $this->getConnection()->getFileCollection(); | |
| 		for ($i = 1; $i <= 10; $i++) { | |
| 			$collection->insertFileContent('content' . $i, [ | |
| 				'filename' => 'name' . $i, | |
| 				'file_index' => $i, | |
| 			]); | |
| 		} | |
| 	} | |
|  | |
| 	// Tests : | |
|  | |
| 	public function testAll() | |
| 	{ | |
| 		$connection = $this->getConnection(); | |
| 		$query = new Query; | |
| 		$rows = $query->from('fs')->all($connection); | |
| 		$this->assertEquals(10, count($rows)); | |
| 	} | |
|  | |
| 	public function testOne() | |
| 	{ | |
| 		$connection = $this->getConnection(); | |
| 		$query = new Query; | |
| 		$row = $query->from('fs')->one($connection); | |
| 		$this->assertTrue(is_array($row)); | |
| 		$this->assertTrue($row['file'] instanceof \MongoGridFSFile); | |
| 	} | |
|  | |
| 	public function testDirectMatch() | |
| 	{ | |
| 		$connection = $this->getConnection(); | |
| 		$query = new Query; | |
| 		$rows = $query->from('fs') | |
| 			->where(['file_index' => 5]) | |
| 			->all($connection); | |
| 		$this->assertEquals(1, count($rows)); | |
| 		/** @var $file \MongoGridFSFile */ | |
| 		$file = $rows[0]; | |
| 		$this->assertEquals('name5', $file['filename']); | |
| 	} | |
| } |