|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
use Pyjac\ORM\DatabaseConnectionStringFactory; |
|
4
|
|
|
use Pyjac\ORM\Exception\DatabaseDriverNotSupportedException; |
|
5
|
|
|
|
|
6
|
|
|
class DatabaseConnectionStringFactoryTest extends PHPUnit_Framework_TestCase |
|
7
|
|
|
{ |
|
8
|
|
|
/** |
|
9
|
|
|
* The instance of DatabaseConnectionStringFactory used in the test. |
|
10
|
|
|
* |
|
11
|
|
|
* @var Pyjac\ORM\DatabaseConnectionStringFactory |
|
12
|
|
|
*/ |
|
13
|
|
|
protected $databaseConnectionStringFactoryTest; |
|
14
|
|
|
|
|
15
|
|
|
/** |
|
16
|
|
|
* Configuration array. |
|
17
|
|
|
* @var array |
|
18
|
|
|
*/ |
|
19
|
|
|
protected $config; |
|
20
|
|
|
|
|
21
|
|
|
protected function setUp() |
|
22
|
|
|
{ |
|
23
|
|
|
$this->config = ['DBNAME' => 'Pyjac', 'DRIVER' => '', 'PASSWORD' => 'secret', 'HOSTNAME' => 'localhost', 'USERNAME' => 'pyjac']; |
|
24
|
|
|
$this->databaseConnectionStringFactory = new DatabaseConnectionStringFactory(); |
|
|
|
|
|
|
25
|
|
|
} |
|
26
|
|
|
|
|
27
|
|
|
public function testCreateDatabaseSourceStringReturnsCorrectPostgresDatabaseSourceString() |
|
28
|
|
|
{ |
|
29
|
|
|
$this->config['DRIVER']= 'postgres'; |
|
30
|
|
|
$dsn = $this->databaseConnectionStringFactory->createDatabaseSourceString($this->config); |
|
|
|
|
|
|
31
|
|
|
$this->assertEquals("pgsql:host=localhost;dbname=Pyjac", $dsn); |
|
32
|
|
|
} |
|
33
|
|
|
|
|
34
|
|
|
public function testCreateDatabaseSourceStringReturnsCorrectMYSqlDatabaseSourceString() |
|
35
|
|
|
{ |
|
36
|
|
|
$this->config['DRIVER']= 'mysql'; |
|
37
|
|
|
$dsn = $this->databaseConnectionStringFactory->createDatabaseSourceString($this->config); |
|
|
|
|
|
|
38
|
|
|
$this->assertEquals("mysql:host=localhost;dbname=Pyjac", $dsn); |
|
39
|
|
|
} |
|
40
|
|
|
|
|
41
|
|
|
public function testCreateDatabaseSourceStringReturnsCorrectSQLiteDatabaseSourceString() |
|
42
|
|
|
{ |
|
43
|
|
|
$this->config['DRIVER']= 'sqlite'; |
|
44
|
|
|
$dsn = $this->databaseConnectionStringFactory->createDatabaseSourceString($this->config); |
|
|
|
|
|
|
45
|
|
|
$this->assertEquals("sqlite::memory:", $dsn); |
|
46
|
|
|
} |
|
47
|
|
|
|
|
48
|
|
|
/** |
|
49
|
|
|
* @expectedException Pyjac\ORM\Exception\DatabaseDriverNotSupportedException |
|
50
|
|
|
*/ |
|
51
|
|
|
public function testCreateDatabaseSourceStringThrowsDatabaseDriverNotSupportedExceptionWhenUnknownDriverIsPassed() |
|
52
|
|
|
{ |
|
53
|
|
|
$this->config['DRIVER']= 'pyjac'; |
|
54
|
|
|
$dsn = $this->databaseConnectionStringFactory->createDatabaseSourceString($this->config); |
|
|
|
|
|
|
55
|
|
|
} |
|
56
|
|
|
} |
An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.
If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.