* @link http://netmonsters.ru * @package Majestic * @subpackage UnitTests * @since 2011-11-1 * * Unit tests for Db class */ require_once dirname(__FILE__) . '/../../Registry.php'; require_once dirname(__FILE__) . '/../../Config.php'; require_once dirname(__FILE__) . '/../../model/Db.php'; class DbTest extends PHPUnit_Framework_TestCase { /** * @expectedException Exception */ public function testConnectNoParams() { Db::connect(); } /** * @expectedException Exception * @expectedExceptionMessage Connection parameters must be an array */ public function testConnectConfigNotArray() { Db::connect('name', 'config'); } public function testConnectGlobalConfig() { $this->getMock('DbDriver', array(), array(), 'MySQLiDriverGlobalConfMock'); Config::set('Db', array('global' =>array('hostname' => 'localhost', 'driver' => 'MySQLiDriverGlobalConfMock'))); Db::connect('global'); } public function testConnectWithConfigParam() { $this->getMock('DbDriver', array(), array(), 'MySQLiDriverMock'); $driver = Db::connect('mysql', array('hostname' => 'localhost', 'driver' => 'MySQLiDriverMock')); $this->assertInstanceOf('DbDriver', $driver); } /** * @expectedException Exception * @expectedExceptionMessage Database driver must extends DbDriver */ public function testConnectWithWrongDriver() { $this->getMock('NotDbDriver', array(), array(), 'NoDbDriverMock'); $driver = Db::connect('nodb', array('hostname' => 'localhost', 'driver' => 'NoDbDriverMock')); } }