/**
  * Проверим что полученный yaml загружается в БД
  * @see Doctrine_Core::loadData()
  */
 public function testLoadData()
 {
     $csvImport = new myImportCsvVkoshelke($this->_csvData);
     $success = $csvImport->execute($this->_user);
     $this->assertTrue($success, 'Импорт должен завершиться успешно');
     file_put_contents($this->_ymlFileName, $csvImport->getYmlData());
     Doctrine_Core::loadData($this->_ymlFileName, true);
     $transfer = Doctrine::getTable('Operation')->findOneByTransferAmount('300000.00', Doctrine::HYDRATE_ARRAY);
     $this->assertNotEmpty($transfer, 'Перевод должен попасть в БД');
     $this->assertEquals(Operation::TYPE_TRANSFER, $transfer['type'], 'Тип операции перевода должен быть ' . Operation::TYPE_TRANSFER);
     $this->assertEquals('2010-06-06', $transfer['date'], 'Дата операции должна совпадать с датой в CSV');
 }
 /**
  * Загрузить данные пользователя, 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('Импорт данных успешно завершён');
 }