65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/*
 | 
						|
 * This file is part of the Symfony package.
 | 
						|
 *
 | 
						|
 * (c) Fabien Potencier <fabien@symfony.com>
 | 
						|
 *
 | 
						|
 * For the full copyright and license information, please view the LICENSE
 | 
						|
 * file that was distributed with this source code.
 | 
						|
 */
 | 
						|
 | 
						|
namespace Symfony\Component\VarDumper\Tests\Caster;
 | 
						|
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
use Symfony\Component\VarDumper\Caster\PdoCaster;
 | 
						|
use Symfony\Component\VarDumper\Cloner\Stub;
 | 
						|
use Symfony\Component\VarDumper\Test\VarDumperTestTrait;
 | 
						|
 | 
						|
/**
 | 
						|
 * @author Nicolas Grekas <p@tchwork.com>
 | 
						|
 */
 | 
						|
class PdoCasterTest extends TestCase
 | 
						|
{
 | 
						|
    use VarDumperTestTrait;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @requires extension pdo_sqlite
 | 
						|
     */
 | 
						|
    public function testCastPdo()
 | 
						|
    {
 | 
						|
        $pdo = new \PDO('sqlite::memory:');
 | 
						|
        $pdo->setAttribute(\PDO::ATTR_STATEMENT_CLASS, ['PDOStatement', [$pdo]]);
 | 
						|
 | 
						|
        $cast = PdoCaster::castPdo($pdo, [], new Stub(), false);
 | 
						|
 | 
						|
        $this->assertInstanceOf('Symfony\Component\VarDumper\Caster\EnumStub', $cast["\0~\0attributes"]);
 | 
						|
 | 
						|
        $attr = $cast["\0~\0attributes"] = $cast["\0~\0attributes"]->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);
 | 
						|
    }
 | 
						|
}
 |