use VarDumperTestTrait;
/**
* @requires extension pdo_sqlite
*/
public function testCastPdo() { $pdo =
new \
PDO('sqlite::memory:'
);
$pdo->
setAttribute(\PDO::ATTR_STATEMENT_CLASS,
['PDOStatement',
[$pdo]]);
$pdo->
setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION
);
$cast = PdoCaster::
castPdo($pdo,
[],
new Stub(), false
);
$this->
assertInstanceOf(EnumStub::
class,
$cast["\0~\0attributes"
]);
$attr =
$cast["\0~\0attributes"
] =
$cast["\0~\0attributes"
]->value;
$this->
assertInstanceOf(ConstStub::
class,
$attr['CASE'
]);
$this->
assertSame('NATURAL',
$attr['CASE'
]->class
);
$this->
assertSame('BOTH',
$attr['DEFAULT_FETCH_MODE'
]->class
);
$xDump = <<<'EODUMP'
array:2 [
"\x00~\x00inTransaction" => false
"\x00~\x00attributes" => array:9 [
"CASE" => NATURAL
"ERRMODE" => EXCEPTION
"PERSISTENT" => false
"DRIVER_NAME" => "sqlite"
"ORACLE_NULLS" => NATURAL
"CLIENT_VERSION" => "%s"
"SERVER_VERSION" => "%s"
"STATEMENT_CLASS" => array:%d [
0 => "PDOStatement"%A
]
"DEFAULT_FETCH_MODE" => BOTH
]
]