/** * Use this method to remove the existing temp table associated with this import model. Will also remove * data from serializedData that is created after a file is normally attached to an import model. It will * leave the importRulesType in place since that is created prior to uploading a new file. * @param object $import model. */ public static function clearFileAndRelatedDataFromImport($import) { assert('$import instanceof Import'); $unserializedData = unserialize($import->serializedData); $newUnserializedData['importRulesType'] = $unserializedData['importRulesType']; if ($import->save()) { ImportDatabaseUtil::dropTableByTableName($import->getTempTableName()); return true; } return false; }
/** * @expectedException RedBean_Exception_SQL */ public function testDropTableByTableName() { $testTableName = 'testimporttable'; $sql = 'select * from ' . $testTableName; $tempTableData = R::getAll($sql); $this->assertEquals(4, count($tempTableData)); if (RedBeanDatabase::isFrozen()) { ImportDatabaseUtil::dropTableByTableName($testTableName); $sql = 'select * from ' . $testTableName; R::getAll($sql); } else { //Unfrozen will not throw an exception in this type of situation. throw new RedBean_Exception_SQL(); } }
/** * @depends testSetFormByPostForStep2 */ public function testImportFileHasAtLeastOneImportRow() { Yii::app()->user->userModel = User::getByUsername('super'); $import = new Import(); $import->serializedData = serialize(array()); $this->assertTrue($import->save()); $this->assertTrue(ImportTestHelper::createTempTableByFileNameAndTableName('headerRowOnlyImportTest.csv', $import->getTempTableName())); $importWizardForm = new ImportWizardForm(); $this->assertTrue(ImportWizardUtil::importFileHasAtLeastOneImportRow($importWizardForm, $import)); //Now set that the first row is a header row and the check will fail. $importWizardForm->firstRowIsHeaderRow = true; $this->assertFalse(ImportWizardUtil::importFileHasAtLeastOneImportRow($importWizardForm, $import)); ImportDatabaseUtil::dropTableByTableName($import->getTempTableName()); }