123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- namespace yiiunit\extensions\mongodb;
- use MongoDB\BSON\ObjectID;
- use yii\data\ActiveDataProvider;
- use yii\mongodb\Query;
- use yiiunit\extensions\mongodb\data\ar\ActiveRecord;
- use yiiunit\extensions\mongodb\data\ar\Customer;
- class ActiveDataProviderTest extends TestCase
- {
- protected function setUp()
- {
- parent::setUp();
- $this->mockApplication();
- ActiveRecord::$db = $this->getConnection();
- $this->setUpTestRows();
- }
- protected function tearDown()
- {
- $this->dropCollection(Customer::collectionName());
- parent::tearDown();
- }
-
- protected function setUpTestRows()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $rows = [];
- for ($i = 1; $i <= 10; $i++) {
- $rows[] = [
- 'name' => 'name' . $i,
- 'email' => 'email' . $i,
- 'address' => 'address' . $i,
- 'status' => $i,
- ];
- }
- $collection->batchInsert($rows);
- }
-
- public function testQuery()
- {
- $query = new Query();
- $query->from('customer');
- $provider = new ActiveDataProvider([
- 'query' => $query,
- 'db' => $this->getConnection(),
- ]);
- $models = $provider->getModels();
- $this->assertEquals(10, count($models));
- $provider = new ActiveDataProvider([
- 'query' => $query,
- 'db' => $this->getConnection(),
- 'pagination' => [
- 'pageSize' => 5,
- ]
- ]);
- $models = $provider->getModels();
- $this->assertEquals(5, count($models));
- }
- public function testActiveQuery()
- {
- $provider = new ActiveDataProvider([
- 'query' => Customer::find()->orderBy('id ASC'),
- ]);
- $models = $provider->getModels();
- $this->assertEquals(10, count($models));
- $this->assertTrue($models[0] instanceof Customer);
- $keys = $provider->getKeys();
- $this->assertTrue($keys[0] instanceof ObjectID);
- $provider = new ActiveDataProvider([
- 'query' => Customer::find(),
- 'pagination' => [
- 'pageSize' => 5,
- ]
- ]);
- $models = $provider->getModels();
- $this->assertEquals(5, count($models));
- }
- }
|