]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/include/database/DBManagerFactoryTest.php
Added unit tests.
[Github/sugarcrm.git] / tests / include / database / DBManagerFactoryTest.php
1 <?php
2 require_once 'include/database/DBManagerFactory.php';
3
4 class DBManagerFactoryTest extends Sugar_PHPUnit_Framework_TestCase
5 {
6     private $_oldSugarConfig;
7     
8     public function setUp()
9     {
10         $this->_oldSugarConfig = $GLOBALS['sugar_config'];
11     }
12     
13     public function tearDown() 
14     {
15         $GLOBALS['sugar_config'] = $this->_oldSugarConfig;
16     }
17     
18     public function testGetInstance()
19     {
20         $db = &DBManagerFactory::getInstance();
21         
22         $this->assertTrue($db instanceOf DBManager,"Should return a DBManger object");
23     }
24     
25     public function testGetInstanceCheckMysqlDriverChoosen()
26     {
27         if ( $GLOBALS['db']->dbType != 'mysql' )
28             $this->markTestSkipped('Only applies to SQL Server');
29         
30         $db = &DBManagerFactory::getInstance();
31         
32         if ( function_exists('mysqli_connect') )
33             $this->assertTrue($db instanceOf MysqliManager,"Should return a MysqliManager object");
34         else
35             $this->assertTrue($db instanceOf MysqlManager,"Should return a MysqlManager object");
36     }
37     
38     /**
39      * @group bug27781
40      */
41     public function testGetInstanceMssqlDefaultSelection()
42     {
43         if ( $GLOBALS['db']->dbType != 'mssql' )
44             $this->markTestSkipped('Only applies to SQL Server');
45         
46         $GLOBALS['sugar_config']['db_mssql_force_driver'] = '';
47         
48         $db = &DBManagerFactory::getInstance();
49         
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");
54         else
55             $this->assertTrue($db instanceOf MssqlManager,"Should return a MssqlManager object");
56     }
57     
58     /**
59      * @group bug27781
60      */
61     public function testGetInstanceMssqlForceFreetdsSelection()
62     {
63         if ( $GLOBALS['db']->dbType != 'mssql' || !is_freetds() )
64             $this->markTestSkipped('Only applies to SQL Server FreeTDS');
65         
66         $GLOBALS['sugar_config']['db_mssql_force_driver'] = 'freetds';
67         
68         $db = &DBManagerFactory::getInstance();
69         
70         $this->assertTrue($db instanceOf FreeTDSManager,"Should return a FreeTDSManager object");
71     }
72     
73     /**
74      * @group bug27781
75      */
76     public function testGetInstanceMssqlForceMssqlSelection()
77     {
78         if ( $GLOBALS['db']->dbType != 'mssql' || !function_exists('mssql_connect') )
79             $this->markTestSkipped('Only applies to SQL Server with the Native PHP mssql Driver');
80         
81         $GLOBALS['sugar_config']['db_mssql_force_driver'] = 'mssql';
82         
83         $db = &DBManagerFactory::getInstance();
84         
85         if ( is_freetds() )
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");
89         else
90             $this->assertTrue($db instanceOf SqlsrvManager,"Should return a SqlsrvManager object");
91     }
92     
93     /**
94      * @group bug27781
95      */
96     public function testGetInstanceMssqlForceSqlsrvSelection()
97     {
98         if ( $GLOBALS['db']->dbType != 'mssql' || !function_exists('sqlsrv_connect') )
99             $this->markTestSkipped('Only applies to SQL Server');
100         
101         $GLOBALS['sugar_config']['db_mssql_force_driver'] = 'sqlsrv';
102         
103         $db = &DBManagerFactory::getInstance();
104         
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");
109         else
110         $this->assertTrue($db instanceOf SqlsrvManager,"Should return a SqlsrvManager object");
111     }
112 }