RedUNIT\Base\Database::testDriver PHP Метод

testDriver() публичный Метод

Test the database driver and low level functions.
public testDriver ( ) : void
Результат void
    public function testDriver()
    {
        $currentDriver = $this->currentlyActiveDriverID;
        R::store(R::dispense('justabean'));
        $adapter = new TroubleDapter(R::getToolBox()->getDatabaseAdapter()->getDatabase());
        $adapter->setSQLState('HY000');
        $writer = new SQLiteT($adapter);
        $redbean = new OODB($writer);
        $toolbox = new ToolBox($redbean, $adapter, $writer);
        // We can only test this for a known driver...
        if ($currentDriver === 'sqlite') {
            try {
                $redbean->find('bean');
                pass();
            } catch (\Exception $e) {
                var_dump($e->getSQLState());
                fail();
            }
        }
        $adapter->setSQLState(-999);
        try {
            $redbean->find('bean');
            fail();
        } catch (\Exception $e) {
            pass();
        }
        try {
            $redbean->wipe('justabean');
            fail();
        } catch (\Exception $e) {
            pass();
        }
        $toolbox = R::getToolBox();
        $adapter = $toolbox->getDatabaseAdapter();
        $writer = $toolbox->getWriter();
        $redbean = $toolbox->getRedBean();
        $pdo = $adapter->getDatabase();
        $page = $redbean->dispense("page");
        try {
            $adapter->exec("an invalid query");
            fail();
        } catch (SQL $e) {
            pass();
        }
        // Special data type description should result in magic number 99 (specified)
        if ($currentDriver == 'mysql') {
            asrt($writer->code(MySQL::C_DATATYPE_SPECIAL_DATE), 99);
        }
        if ($currentDriver == 'pgsql') {
            asrt($writer->code(PostgreSQL::C_DATATYPE_SPECIAL_DATE), 99);
        }
        if ($currentDriver == 'CUBRID') {
            asrt($writer->code(CUBRID::C_DATATYPE_SPECIAL_DATE), 99);
        }
        asrt((int) $adapter->getCell("SELECT 123"), 123);
        $page->aname = "my page";
        $id = (int) $redbean->store($page);
        asrt((int) $page->id, 1);
        asrt((int) $pdo->GetCell("SELECT count(*) FROM page"), 1);
        asrt($pdo->GetCell("SELECT aname FROM page LIMIT 1"), "my page");
        asrt((int) $id, 1);
        $page = $redbean->load("page", 1);
        asrt($page->aname, "my page");
        asrt((bool) $page->getMeta("type"), TRUE);
        asrt(isset($page->id), TRUE);
        asrt($page->getMeta("type"), "page");
        asrt((int) $page->id, $id);
    }