/** * This method is called before the first test of this test class is run. * * @return void * * @since 12.1 */ public static function setUpBeforeClass() { // We always want the default database test case to use an SQLite memory database. $options = array('driver' => 'sqlite', 'database' => ':memory:', 'prefix' => 'jos_'); try { // Attempt to instantiate the driver. self::$driver = JDatabaseDriver::getInstance($options); // Create a new PDO instance for an SQLite memory database and load the test schema into it. $pdo = new PDO('sqlite::memory:'); $pdo->exec(file_get_contents(JPATH_TESTS . '/schema/ddl.sql')); // Set the PDO instance to the driver using reflection whizbangery. TestReflection::setValue(self::$driver, 'connection', $pdo); } catch (RuntimeException $e) { self::$driver = null; } // If for some reason an exception object was returned set our database object to null. if (self::$driver instanceof Exception) { self::$driver = null; } // Setup the factory pointer for the driver and stash the old one. self::$_stash = JFactory::$database; JFactory::$database = self::$driver; }