cakePHP testing tip : Creating or edit a datasource on the fly13 Jul 2010
For one of the tests I'm currently writing, I needed to assert that my method was correctly returning an error if the connection to the database was impossible.
I couldn't find an easy way to change datasource credentials once the app was
initiated, so I decided to manually update the
Here's how I did it :
// Getting the datasource cache in the ConnectionManager object $connectionManagerInstance = ConnectionManager::getInstance(); $databaseConfig = &$connectionManagerInstance->_dataSources; // Saving the initial setting for reverting it later $_defaultConfig = $databaseConfig['default']; // Changing the password so the credentials will fail $databaseConfig['default']->config['password'].= 'pass'; // Getting the updated datasource $connect = ConnectionManager::getDataSource('default'); // Error handling when connection unavailable [...] // And reverting the settings back $databaseConfig['default'] = $_defaultConfig;
This proved really useful when testing to simulate a database server error.
Want to add something ? Feel free to get in touch on Twitter : @pixelastic