public function testGetData() { $testTableName = 'testimporttable'; ImportTestHelper::createTempTableByFileNameAndTableName('importTest.csv', $testTableName); $config = array('pagination' => array('pageSize' => 1)); $dataProvider = new ImportDataProvider($testTableName, false, $config); $data = $dataProvider->getData(); $this->assertEquals(1, count($data)); $firstBean = current($data); $this->assertEquals(1, $firstBean->id); $this->assertEquals('name', $firstBean->column_0); $this->assertEquals('phone', $firstBean->column_1); $this->assertEquals('industry', $firstBean->column_2); $dataProvider = new ImportDataProvider($testTableName, true, $config); $data = $dataProvider->getData(); $this->assertEquals(1, count($data)); $firstBean = current($data); $this->assertEquals(2, $firstBean->id); $this->assertEquals('abc', $firstBean->column_0); $this->assertEquals('123', $firstBean->column_1); $this->assertEquals('a', $firstBean->column_2); //Test getting the pager content $content = ImportDataProviderPagerUtil::renderPagerAndHeaderTextContent($dataProvider, 'aurl'); $this->assertNotNull($content); //todo: add more pager content tests, based on offset changes. }
public function actionSampleRow($id) { $import = Import::getById((int) $_GET['id']); $importWizardForm = ImportWizardUtil::makeFormByImport($import); $dataProvider = $this->makeDataProviderForSampleRow($import, (bool) $importWizardForm->firstRowIsHeaderRow); $data = $dataProvider->getData(); $renderedContentData = array(); $pagerUrl = Yii::app()->createUrl('import/default/sampleRow', array('id' => $import->id)); $headerContent = ImportDataProviderPagerUtil::renderPagerAndHeaderTextContent($dataProvider, $pagerUrl); $renderedContentData[MappingFormLayoutUtil::getSampleColumnHeaderId()] = $headerContent; foreach ($data as $sampleColumnData) { foreach ($sampleColumnData as $columnName => $value) { if (!in_array($columnName, ImportDatabaseUtil::getReservedColumnNames())) { $renderedContentData[MappingFormLayoutUtil::resolveSampleColumnIdByColumnName($columnName)] = MappingFormLayoutUtil::renderChoppedStringContent($value); } } } echo CJSON::encode($renderedContentData); Yii::app()->end(0, false); }