<?php 
 
/* 
 * Queasy PHP Framework - Database - Tests 
 * 
 * (c) Vitaly Demyanenko <[email protected]> 
 * 
 * For the full copyright and license information, please view the LICENSE file that was distributed with this source code. 
 */ 
 
namespace queasy\db\tests; 
 
use PHPUnit\Framework\TestCase; 
 
use InvalidArgumentException; 
 
use queasy\db\Connection; 
 
class ConnectionTest extends TestCase 
{ 
    public function testDefault() 
    { 
        $connection = new Connection(); 
 
        $this->assertEquals('sqlite::memory:', $connection()); 
    } 
 
    public function testDefaultGet() 
    { 
        $connection = new Connection(); 
 
        $this->assertEquals('sqlite::memory:', $connection->get()); 
    } 
 
    public function testDefaultWithPath() 
    { 
        $connection = new Connection(['path' => '../resources/test.sqlite.temp']); 
 
        $this->assertEquals('sqlite:../resources/test.sqlite.temp', $connection()); 
    } 
 
    public function testMysql() 
    { 
        $connection = new Connection([ 
            'driver' => 'mysql', 
            'host' => 'localhost', 
            'port' => '9987', 
            'name' => 'test' 
        ]); 
 
        $this->assertEquals('mysql:host=localhost;port=9987;dbname=test', $connection()); 
    } 
 
    public function testMysqlGet() 
    { 
        $connection = new Connection([ 
            'driver' => 'mysql', 
            'host' => 'localhost', 
            'port' => '9987', 
            'name' => 'test' 
        ]); 
 
        $this->assertEquals('mysql:host=localhost;port=9987;dbname=test', $connection->get()); 
    } 
 
    public function testCustomDsn() 
    { 
        $connection = new Connection('Custom'); 
 
        $this->assertEquals('Custom', $connection()); 
    } 
 
    public function testCustomDsnGet() 
    { 
        $connection = new Connection('Custom'); 
 
        $this->assertEquals('Custom', $connection->get()); 
    } 
 
    public function testInvalidDsn() 
    { 
        $this->expectException(InvalidArgumentException::class); 
 
        new Connection(32167); 
    } 
 
    public function testCustomDsnOption() 
    { 
        $connection = new Connection(['dsn' => 'Custom']); 
 
        $this->assertEquals('Custom', $connection()); 
    } 
 
    public function testCustomDsnOptionGet() 
    { 
        $connection = new Connection(['dsn' => 'Custom']); 
 
        $this->assertEquals('Custom', $connection->get()); 
    } 
} 
 
 
 |