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\mongo\file; |
|
|
|
use yii\mongo\file\Query; |
|
use yiiunit\extensions\mongo\MongoTestCase; |
|
|
|
/** |
|
* @group mongo |
|
*/ |
|
class QueryTest extends MongoTestCase |
|
{ |
|
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']); |
|
} |
|
} |