/** * Tests basic SELECT functionality and that collections are returned * relatively sane. * * @dataProvider provider_multiple_select * @param Jelly $result * @param int $count * @param bool $is_model * @return void */ public function test_multiple_select($result, $count, $is_model = TRUE) { // Set database connection name $db = parent::$database_connection; // Ensure the count matches a count() query $this->assertEquals($result->count($db), $count); // We can now get our collection $result = $result->select($db); // Ensure we have a collection and our counts match $this->assertTrue($result instanceof Jelly_Collection); $this->assertEquals(count($result), $count); // Ensure we can loop through them and all models are loaded $verify = 0; foreach ($result as $model) { if ($is_model) { $this->assertTrue($model->loaded()); $this->assertTrue($model->saved()); $this->assertTrue($model->id > 0); } $verify++; } // Ensure the loop and result was the same $this->assertEquals($verify, $count); }