/** * Load date into moodle database tables from standard PHPUnit data set. * * Note: it is usually better to use data generators * * @param PHPUnit_Extensions_Database_DataSet_IDataSet $dataset * @return void */ protected function loadDataSet(PHPUnit_Extensions_Database_DataSet_IDataSet $dataset) { global $DB; $structure = phpunit_util::get_tablestructure(); foreach($dataset->getTableNames() as $tablename) { $table = $dataset->getTable($tablename); $metadata = $dataset->getTableMetaData($tablename); $columns = $metadata->getColumns(); $doimport = false; if (isset($structure[$tablename]['id']) and $structure[$tablename]['id']->auto_increment) { $doimport = in_array('id', $columns); } for($r=0; $r<$table->getRowCount(); $r++) { $record = $table->getRow($r); if ($doimport) { $DB->import_record($tablename, $record); } else { $DB->insert_record($tablename, $record); } } if ($doimport) { $DB->get_manager()->reset_sequence(new xmldb_table($tablename)); } } }