Example #1
0
 public function testModelsList()
 {
     $dataList = [['name' => 'test', 'key' => 1], ['name' => 'test2', 'key' => 1], ['name' => 'test3', 'key' => 2]];
     $database = new Database('mysql', 'localhost', 'test');
     $table = new Table($database, 'test');
     $table->create([new Column('id', 'INT', false, true, true), new Column('name', 'VARCHAR(255)'), new Column('key', 'INT(1)')], true);
     foreach ($dataList as $data) {
         $table->insert(array_keys($data), array_values($data));
     }
     $model = new Model($table);
     $modelsList = new ModelsList($model, new Query(['key' => 1]));
     $list = $modelsList->getData(1)->getElements();
     $this->assertEquals(1, $modelsList->page);
     $this->assertNull($modelsList->onPage);
     $this->assertEquals(2, $modelsList->total);
     $this->assertEquals(2, count($list));
     $this->assertEquals('1', $list[0]->getId());
     $this->assertEquals('test2', $list[1]->getData('name'));
     $this->assertEquals($dataList[0], $list[0]->getData());
     $list = $modelsList->reset()->setQuery(new Query())->getData(1, 2)->getElements();
     $this->assertEquals(1, $modelsList->page);
     $this->assertEquals(2, $modelsList->onPage);
     $this->assertEquals(3, $modelsList->total);
     $this->assertEquals(2, count($list));
     // Clean up
     foreach ($list as $model) {
         $model->executeActions();
     }
     $table->drop();
 }