public function testResolveMappingDataForView()
 {
     $testTableName = 'testimporttable';
     $this->assertTrue(ImportTestHelper::createTempTableByFileNameAndTableName('importTest.csv', $testTableName, true));
     $mappingData = ImportMappingUtil::makeMappingDataByTableName($testTableName);
     $compareData = array('column_0' => array('type' => 'importColumn', 'attributeIndexOrDerivedType' => null, 'mappingRulesData' => null), 'column_1' => array('type' => 'importColumn', 'attributeIndexOrDerivedType' => null, 'mappingRulesData' => null), 'column_2' => array('type' => 'importColumn', 'attributeIndexOrDerivedType' => null, 'mappingRulesData' => null));
     $this->assertEquals($compareData, $mappingData);
     $mappingData['column_3'] = array('type' => 'extraColumn', 'attributeIndexOrDerivedType' => 'xyz', 'mappingRulesData' => null);
     $headerRow = ZurmoRedBean::$writer->getFirstRowByTableName($testTableName);
     $sampleBean = ImportDatabaseUtil::getSubset($testTableName, null, 1, 1);
     $mappingDataMetadata = ImportWizardMappingViewUtil::resolveMappingDataForView($mappingData, current($sampleBean), $headerRow);
     $compareData = array('column_0' => array('type' => 'importColumn', 'attributeIndexOrDerivedType' => null, 'mappingRulesData' => null, 'headerValue' => 'name', 'sampleValue' => 'abc'), 'column_1' => array('type' => 'importColumn', 'attributeIndexOrDerivedType' => null, 'mappingRulesData' => null, 'headerValue' => 'phone', 'sampleValue' => '123'), 'column_2' => array('type' => 'importColumn', 'attributeIndexOrDerivedType' => null, 'mappingRulesData' => null, 'headerValue' => 'industry', 'sampleValue' => 'a'), 'column_3' => array('type' => 'extraColumn', 'attributeIndexOrDerivedType' => 'xyz', 'mappingRulesData' => null, 'headerValue' => null, 'sampleValue' => null));
     $this->assertEquals($compareData, $mappingDataMetadata);
     $sampleBean = ImportDatabaseUtil::getSubset($testTableName, null, 1);
     $mappingDataMetadata = ImportWizardMappingViewUtil::resolveMappingDataForView($mappingData, current($sampleBean), null);
     $compareData = array('column_0' => array('type' => 'importColumn', 'attributeIndexOrDerivedType' => null, 'mappingRulesData' => null, 'sampleValue' => 'name'), 'column_1' => array('type' => 'importColumn', 'attributeIndexOrDerivedType' => null, 'mappingRulesData' => null, 'sampleValue' => 'phone'), 'column_2' => array('type' => 'importColumn', 'attributeIndexOrDerivedType' => null, 'mappingRulesData' => null, 'sampleValue' => 'industry'), 'column_3' => array('type' => 'extraColumn', 'attributeIndexOrDerivedType' => 'xyz', 'mappingRulesData' => null, 'sampleValue' => null));
     $this->assertEquals($compareData, $mappingDataMetadata);
 }
 /**
  * Given an array of file upload data, set the form from this.  Keep the existing importRulesType value
  * but clear out any other form attributes since with a new file uploaded, those other attribute values will
  * need to be redone.
  * @param object $importWizardForm
  * @param array $fileUploadData
  */
 public static function setFormByFileUploadDataAndTableName($importWizardForm, $fileUploadData, $tableName)
 {
     assert('$importWizardForm instanceof ImportWizardForm');
     assert('is_array($fileUploadData)');
     assert('is_string($tableName)');
     foreach (self::$importToFormAttributeMap as $attributeName) {
         if ($attributeName != 'importRulesType') {
             $importWizardForm->{$attributeName} = null;
         }
     }
     $importWizardForm->explicitReadWriteModelPermissions = new ExplicitReadWriteModelPermissions();
     $importWizardForm->fileUploadData = $fileUploadData;
     try {
         $importWizardForm->mappingData = ImportMappingUtil::makeMappingDataByTableName($tableName);
     } catch (NoRowsInTableException $e) {
         throw new FailedFileUploadException(Zurmo::t('ImportModule', 'Import file has no rows to use.'));
     }
 }
Esempio n. 3
0
 /**
  * @expectedException NoRowsInTableException
  */
 public function testMakeMappingDataOnFileWithNoRows()
 {
     $testTableName = 'testimporttable';
     $this->assertTrue(ImportTestHelper::createTempTableByFileNameAndTableName('importTest3.csv', $testTableName));
     ImportMappingUtil::makeMappingDataByTableName($testTableName);
 }