RedUNIT\Base\Finding::testFindError PHP Method

testFindError() public method

Test error handling of SQL states.
public testFindError ( ) : void
return void
    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);
    }