|
|
<?php |
|
|
|
|
|
use PicoDb\UrlParser; |
|
|
|
|
|
require_once __DIR__.'/../../../vendor/autoload.php'; |
|
|
|
|
|
class UrlParserTest extends PHPUnit_Framework_TestCase |
|
|
{ |
|
|
public function testParseUrl() |
|
|
{ |
|
|
$urlParser = UrlParser::getInstance(); |
|
|
$this->assertFalse($urlParser->isEnvironmentVariableDefined()); |
|
|
|
|
|
$settings = $urlParser->getSettings('postgres://user:pass@hostname:6212/db'); |
|
|
$this->assertEquals('postgres', $settings['driver']); |
|
|
$this->assertEquals('user', $settings['username']); |
|
|
$this->assertEquals('pass', $settings['password']); |
|
|
$this->assertEquals('hostname', $settings['hostname']); |
|
|
$this->assertEquals('6212', $settings['port']); |
|
|
$this->assertEquals('db', $settings['database']); |
|
|
} |
|
|
|
|
|
public function testParseWrongUrl() |
|
|
{ |
|
|
$urlParser = new UrlParser(); |
|
|
$settings = $urlParser->getSettings('/'); |
|
|
$this->assertEmpty($settings['driver']); |
|
|
$this->assertFalse($urlParser->isEnvironmentVariableDefined()); |
|
|
} |
|
|
|
|
|
public function testGetUrlFromEnvironment() |
|
|
{ |
|
|
putenv('DATABASE_URL=postgres://user:pass@hostname:6212/db'); |
|
|
|
|
|
$urlParser = new UrlParser(); |
|
|
$this->assertTrue($urlParser->isEnvironmentVariableDefined()); |
|
|
|
|
|
$settings = $urlParser->getSettings(); |
|
|
$this->assertEquals('postgres', $settings['driver']); |
|
|
$this->assertEquals('user', $settings['username']); |
|
|
$this->assertEquals('pass', $settings['password']); |
|
|
$this->assertEquals('hostname', $settings['hostname']); |
|
|
$this->assertEquals('6212', $settings['port']); |
|
|
$this->assertEquals('db', $settings['database']); |
|
|
} |
|
|
} |
|
|
|