/** * link to an xml file that will store a fake database that can easily * and quickly have its contents refreshed for retesting * the xml file must exist in tests/_files/ */ public static function setupDatabase($xmlPath = 'dbtest.xml') { if (!self::$dbTester) { $configFilePath = dirname(__FILE__) . '/../../application/configs'; $applicationIni = new Zend_Config_Ini($configFilePath . '/application.ini', 'testing'); $adapter = $applicationIni->resources->db->adapter; $params = array('username' => $applicationIni->resources->db->params->username, 'password' => $applicationIni->resources->db->params->password, 'host' => $applicationIni->resources->db->params->host, 'port' => $applicationIni->resources->db->params->port, 'dbname' => $applicationIni->resources->db->params->dbname); $db = Zend_Db::factory($adapter, $params); $connection = new Zend_Test_PHPUnit_Db_Connection($db, 'mysql'); $databaseTester = new Zend_Test_PHPUnit_Db_SimpleTester($connection); self::$dbTester = $databaseTester; } else { $databaseTester = self::$dbTester; } $databaseFixture = new PHPUnit_Extensions_Database_DataSet_FlatXmlDataSet(dirname(__FILE__) . '/../_files/' . $xmlPath); $databaseTester->setupDatabase($databaseFixture); }