2 require_once 'include/database/DBManagerFactory.php';
4 class DBManagerFactoryTest extends Sugar_PHPUnit_Framework_TestCase
6 private $_oldSugarConfig;
8 public function setUp()
10 $this->_oldSugarConfig = $GLOBALS['sugar_config'];
13 public function tearDown()
15 $GLOBALS['sugar_config'] = $this->_oldSugarConfig;
18 public function testGetInstance()
20 $db = &DBManagerFactory::getInstance();
22 $this->assertTrue($db instanceOf DBManager,"Should return a DBManger object");
25 public function testGetInstanceCheckMysqlDriverChoosen()
27 if ( $GLOBALS['db']->dbType != 'mysql' )
28 $this->markTestSkipped('Only applies to SQL Server');
30 $db = &DBManagerFactory::getInstance();
32 if ( function_exists('mysqli_connect') )
33 $this->assertTrue($db instanceOf MysqliManager,"Should return a MysqliManager object");
35 $this->assertTrue($db instanceOf MysqlManager,"Should return a MysqlManager object");
41 public function testGetInstanceMssqlDefaultSelection()
43 if ( $GLOBALS['db']->dbType != 'mssql' )
44 $this->markTestSkipped('Only applies to SQL Server');
46 $GLOBALS['sugar_config']['db_mssql_force_driver'] = '';
48 $db = &DBManagerFactory::getInstance();
50 if ( function_exists('sqlsrv_connect') )
51 $this->assertTrue($db instanceOf SqlsrvManager,"Should return a SqlsrvManager object");
52 elseif ( is_freetds() )
53 $this->assertTrue($db instanceOf FreeTDSManager,"Should return a FreeTDSManager object");
55 $this->assertTrue($db instanceOf MssqlManager,"Should return a MssqlManager object");
61 public function testGetInstanceMssqlForceFreetdsSelection()
63 if ( $GLOBALS['db']->dbType != 'mssql' || !is_freetds() )
64 $this->markTestSkipped('Only applies to SQL Server FreeTDS');
66 $GLOBALS['sugar_config']['db_mssql_force_driver'] = 'freetds';
68 $db = &DBManagerFactory::getInstance();
70 $this->assertTrue($db instanceOf FreeTDSManager,"Should return a FreeTDSManager object");
76 public function testGetInstanceMssqlForceMssqlSelection()
78 if ( $GLOBALS['db']->dbType != 'mssql' || !function_exists('mssql_connect') )
79 $this->markTestSkipped('Only applies to SQL Server with the Native PHP mssql Driver');
81 $GLOBALS['sugar_config']['db_mssql_force_driver'] = 'mssql';
83 $db = &DBManagerFactory::getInstance();
86 $this->assertTrue($db instanceOf MssqlManager,"Should return a MssqlManager object");
87 elseif ( function_exists('mssql_connect') )
88 $this->assertTrue($db instanceOf MssqlManager,"Should return a MssqlManager object");
90 $this->assertTrue($db instanceOf SqlsrvManager,"Should return a SqlsrvManager object");
96 public function testGetInstanceMssqlForceSqlsrvSelection()
98 if ( $GLOBALS['db']->dbType != 'mssql' || !function_exists('sqlsrv_connect') )
99 $this->markTestSkipped('Only applies to SQL Server');
101 $GLOBALS['sugar_config']['db_mssql_force_driver'] = 'sqlsrv';
103 $db = &DBManagerFactory::getInstance();
105 if ( is_freetds() && !function_exists('sqlsrv_connect') )
106 $this->assertTrue($db instanceOf FreeTDSManager,"Should return a FreeTDSManager object");
107 elseif ( function_exists('mssql_connect') && !function_exists('sqlsrv_connect') )
108 $this->assertTrue($db instanceOf MssqlManager,"Should return a MssqlManager object");
110 $this->assertTrue($db instanceOf SqlsrvManager,"Should return a SqlsrvManager object");