public function testConvertSerializedMessagesToDisplayReadyString()
 {
     $messages = array('a', 'b', 'c');
     $string = ImportResultsUtil::convertSerializedMessagesToDisplayReadyString(serialize($messages));
     $compareString = 'a<br/>b<br/>c';
     $this->assertEquals($compareString, $string);
 }
 /**
  * Given a data provider, call getData and for each row, attempt to import the data.
  * @param ImportDataProvider $dataProvider
  * @param ImportRules $importRules
  * @param $mappingData
  * @param ImportResultsUtil $importResultsUtil
  * @param ExplicitReadWriteModelPermissions $explicitReadWriteModelPermissions
  * @param ImportMessageLogger $messageLogger
  */
 public static function importByDataProvider(ImportDataProvider $dataProvider, ImportRules $importRules, $mappingData, ImportResultsUtil $importResultsUtil, ExplicitReadWriteModelPermissions $explicitReadWriteModelPermissions, ImportMessageLogger $messageLogger)
 {
     $data = $dataProvider->getData(true);
     foreach ($data as $rowBean) {
         assert('$rowBean->id != null');
         $importRowDataResultsUtil = new ImportRowDataResultsUtil((int) $rowBean->id);
         //todo: eventually handle security exceptions in a more graceful way instead of relying on a try/catch
         //but explicity checking for security rights/permissions.
         try {
             static::importByImportRulesRowData($importRules, $rowBean, $mappingData, $importRowDataResultsUtil, $explicitReadWriteModelPermissions);
         } catch (AccessDeniedSecurityException $e) {
             $importRowDataResultsUtil->addMessage(Zurmo::t('ImportModule', 'You do not have permission to create/update this record and/or its related record.'));
             $importRowDataResultsUtil->setStatusToError();
         }
         $importResultsUtil->addRowDataResults($importRowDataResultsUtil);
         $messageLogger->countAfterRowImported();
     }
 }