setValues(['first_name' => 'Bob', 'last_name' => $last_name]) ->execute()->first(); $jan = Contact::create() ->setValues(['first_name' => 'Jan', 'last_name' => $last_name]) ->execute()->first(); $del = Contact::create() ->setValues(['first_name' => 'Del', 'last_name' => $last_name, 'is_deleted' => 1]) ->execute()->first(); // Deleted contacts are not fetched by default $this->assertCount(2, Contact::get()->addWhere('last_name', '=', $last_name)->selectRowCount()->execute()); // You can search for them specifically $contacts = Contact::get()->addWhere('last_name', '=', $last_name)->addWhere('is_deleted', '=', 1)->addSelect('id')->execute(); $this->assertEquals($del['id'], $contacts->first()['id']); // Or by id $this->assertCount(3, Contact::get()->addWhere('id', 'IN', [$bob['id'], $jan['id'], $del['id']])->selectRowCount()->execute()); // Putting is_deleted anywhere in the where clause will disable the default $contacts = Contact::get()->addClause('OR', ['last_name', '=', $last_name], ['is_deleted', '=', 0])->addSelect('id')->execute(); $this->assertContains($del['id'], $contacts->column('id')); } public function testGetWithLimit() { $last_name = uniqid('getWithLimitTest'); $bob = Contact::create() ->setValues(['first_name' => 'Bob', 'last_name' => $last_name]) ->execute()->first(); $jan = Contact::create() ->setValues(['first_name' => 'Jan', 'last_name' => $last_name]) ->execute()->first(); $dan = Contact::create() ->setValues(['first_name' => 'Dan', 'last_name' => $last_name]) ->execute()->first(); $num = Contact::get()->setCheckPermissions(FALSE)->selectRowCount()->execute()->count(); $this->assertCount($num - 1, Contact::get()->setCheckPermissions(FALSE)->setLimit(0)->setOffset(1)->execute()); $this->assertCount($num - 2, Contact::get()->setCheckPermissions(FALSE)->setLimit(0)->setOffset(2)->execute()); $this->assertCount(2, Contact::get()->setCheckPermissions(FALSE)->setLimit(2)->setOffset(0)->execute()); } }