<?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']); } }