propel-bundle/Tests/Command/DatabaseCreateCommandTest.php
2016-01-23 21:41:17 +01:00

81 lines
2.4 KiB
PHP

<?php
/**
* This file is part of the PropelBundle package.
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @license MIT License
*/
namespace Propel\Bundle\PropelBundle\Tests\Command;
use Propel\Bundle\PropelBundle\Command\DatabaseCreateCommand;
use Propel\Bundle\PropelBundle\Tests\TestCase;
/**
* @author Warnar Boekkooi <warnar@boekkooi.net>
*/
class DatabaseCreateCommandTest extends TestCase
{
/** @var TestableDatabaseCreateCommand */
protected $command;
public function setUp()
{
$this->command = new TestableDatabaseCreateCommand();
}
public function tearDown()
{
$this->command = null;
}
/**
* @dataProvider dataTemporaryConfiguration
*/
public function testTemporaryConfiguration($name, $config, $expectedDsn)
{
$datasource = $this->command->getTemporaryConfiguration($name, $config);
$this->assertArrayHasKey('datasources', $datasource);
$this->assertArrayHasKey($name, $datasource['datasources']);
$this->assertArrayHasKey('connection', $datasource['datasources'][$name]);
$this->assertArrayHasKey('dsn', $datasource['datasources'][$name]['connection']);
$this->assertEquals($expectedDsn, $datasource['datasources'][$name]['connection']['dsn']);
}
public function dataTemporaryConfiguration()
{
return array(
array(
'dbname',
array('connection' => array('dsn' => 'mydsn:host=localhost;dbname=test_db;')),
'mydsn:host=localhost;'
),
array(
'dbname_first',
array('connection' => array('dsn' => 'mydsn:dbname=test_db;host=localhost')),
'mydsn:host=localhost'
),
array(
'dbname_no_semicolon',
array('connection' => array('dsn' => 'mydsn:host=localhost;dbname=test_db')),
'mydsn:host=localhost;'
),
array(
'no_dbname',
array('connection' => array('dsn' => 'mydsn:host=localhost;')),
'mydsn:host=localhost;'
),
);
}
}
class TestableDatabaseCreateCommand extends DatabaseCreateCommand
{
public function getTemporaryConfiguration($name, $config)
{
return parent::getTemporaryConfiguration($name, $config);
}
}