/** * Проверяем реакцию на неправильный формат */ public function testWrongCsvFormat() { $csv = "FirstName,LastName\n"; $csv .= "Крошка,Енот"; $csvImport = new myImportCsvVkoshelke($csv); $success = $csvImport->execute($this->_user); $this->assertFalse($success, 'Импорт не должен удаться'); }
/** * Загрузить данные пользователя, AJAX */ public function executeImportCsv(sfRequest $request) { $csvFile = $request->getFiles('data'); $import = new myImportCsvVkoshelke($csvFile['tmp_name']); if (!$import->execute($this->getUser()->getUserRecord())) { $errorMessage = 'Не удалось разобрать CSV'; $this->myLogMessage(__METHOD__, 'fail', $errorMessage, $errorMessage, file_get_contents($csvFile['tmp_name'])); return $this->renderJsonError($errorMessage); } $ymlFileName = sprintf("%s/php_%s_%s.yml", sys_get_temp_dir(), __CLASS__, rand(1000000.0, 10000000.0)); try { file_put_contents($ymlFileName, $import->getYmlData()); Doctrine::loadData($ymlFileName, true); unlink($ymlFileName); } catch (Exception $e) { $errorMessage = 'Импорт не удалось загрузить данные в БД'; $this->myLogMessage(__METHOD__, 'fail', $errorMessage, $errorMessage, file_get_contents($csvFile['tmp_name'])); return $this->renderJsonError($errorMessage); } return $this->renderJsonSuccess('Импорт данных успешно завершён'); }