Exemplo n.º 1
0
    /**
     * @requires extension pdo_sqlite
     */
    public function testCastPdo()
    {
        $pdo = new \PDO('sqlite::memory:');
        $pdo->setAttribute(\PDO::ATTR_STATEMENT_CLASS, array('PDOStatement', array($pdo)));
        $cast = PdoCaster::castPdo($pdo, array(), new Stub(), false);
        $this->assertInstanceOf('Symfony\\Component\\VarDumper\\Caster\\EnumStub', $cast["~attributes"]);
        $attr = $cast["~attributes"] = $cast["~attributes"]->value;
        $this->assertInstanceOf('Symfony\\Component\\VarDumper\\Caster\\ConstStub', $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" => SILENT
    "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
  ]
]
EODUMP;
        $this->assertDumpMatchesFormat($xDump, $cast);
    }
 /**
  * @requires extension pdo_sqlite
  */
 public function testCastPdo()
 {
     $pdo = new \PDO('sqlite::memory:');
     $pdo->setAttribute(\PDO::ATTR_STATEMENT_CLASS, array('PDOStatement', array($pdo)));
     $cast = PdoCaster::castPdo($pdo, array(), new Stub(), false);
     $attr = $cast["~attributes"];
     $this->assertInstanceOf('Symfony\\Component\\VarDumper\\Caster\\ConstStub', $attr['CASE']);
     $this->assertSame('NATURAL', $attr['CASE']->class);
     $this->assertSame('BOTH', $attr['DEFAULT_FETCH_MODE']->class);
     $xCast = array("~inTransaction" => $pdo->inTransaction(), "~attributes" => array('CASE' => $attr['CASE'], 'ERRMODE' => $attr['ERRMODE'], 'PERSISTENT' => false, 'DRIVER_NAME' => 'sqlite', 'ORACLE_NULLS' => $attr['ORACLE_NULLS'], 'CLIENT_VERSION' => $pdo->getAttribute(\PDO::ATTR_CLIENT_VERSION), 'SERVER_VERSION' => $pdo->getAttribute(\PDO::ATTR_SERVER_VERSION), 'STATEMENT_CLASS' => array('PDOStatement'), 'DEFAULT_FETCH_MODE' => $attr['DEFAULT_FETCH_MODE']));
     unset($cast["~attributes"]['STATEMENT_CLASS'][1]);
     $this->assertSame($xCast, $cast);
 }