public function testCollectionLoader() { /** * @var ModelCollection $products */ $products = \Product::loadList(QC::create()->limit(1, 1)); $this->assertInstanceOf('Solve\\Database\\Models\\ModelCollection', $products, 'Instance of model collection created'); var_dump($products->count()); die; /** * @var ModelCollection $categories */ $categories = \Category::loadList(); $this->assertInstanceOf('CategoriesCollection', $categories, 'Custom model collection instance loaded'); $this->assertEquals(3, $products->count(), 'Count with method'); $this->assertEquals(2, count($categories), 'Count as function'); $this->assertEquals('Macbook Air', $products[0]->title, 'Object accessor by index'); $this->assertEquals('Macbook Pro', $products->getOneByPK(2)->title, 'Object accessor by primary key'); $this->assertEquals('Macbook Air', $products->getFirst()->title, 'Collection getFirst'); $this->assertEquals('iMac 27"', $products->getLast()->title, 'Collection getLast'); $products = \Product::loadList(QC::create()->where('id < 3')); $this->assertEquals(2, count($products), 'Loaded with criteria'); $product = \Product::loadOne(3); $products[] = $product; try { $products[] = $product; } catch (\Exception $e) { $this->getExpectedException('Can\'t add object with same id to collection'); } $products->delete(); $this->assertEmpty(QC::create('products')->where('id < 3')->execute(), 'Model collection delete'); }