public function testFindError()
{
R::freeze(FALSE);
$page = R::dispense('page');
$page->title = 'abc';
R::store($page);
//Column does not exist, in fluid mode no error!
try {
R::find('page', ' xtitle = ? ', array('x'));
pass();
} catch (SQL $e) {
fail();
}
//Table does not exist, in fluid mode no error!
try {
R::find('pagex', ' title = ? ', array('x'));
pass();
} catch (SQL $e) {
fail();
}
//Syntax error, error in fluid mode if possible to infer from SQLSTATE (MySQL/Postgres)
try {
R::find('page', ' invalid SQL ');
//In SQLite only get HY000 - not very descriptive so suppress more errors in fluid mode then.
if ($this->currentlyActiveDriverID === 'sqlite' || $this->currentlyActiveDriverID === 'CUBRID') {
pass();
} else {
fail();
}
} catch (SQL $e) {
pass();
}
//Frozen, always error...
R::freeze(TRUE);
//Column does not exist, in frozen mode error!
try {
R::find('page', ' xtitle = ? ', array('x'));
fail();
} catch (SQL $e) {
pass();
}
//Table does not exist, in frozen mode error!
try {
R::find('pagex', ' title = ? ', array('x'));
fail();
} catch (SQL $e) {
pass();
}
//Syntax error, in frozen mode error!
try {
R::find('page', ' invalid SQL ');
fail();
} catch (SQL $e) {
pass();
}
R::freeze(FALSE);
}