/** * @dataProvider arrayDataProvider */ public function testArrayData(array $testData, $delimiter, $expectedResult) { $objReader = new \Haste\IO\Reader\ArrayReader($testData); $objWriter = new \Haste\IO\Writer\CsvFileWriter($this->tempFile); $objWriter->setDelimiter($delimiter); $objWriter->writeFrom($objReader); $this->assertEquals($expectedResult, file_get_contents(TL_ROOT . '/' . $this->tempFile)); }
/** * Exports a given set of data row ids using a given configuration. * * @param \Database\Result $config * @param array|null $ids * * @throws ExportFailedException */ public function export($config, $ids = null) { $dataCollector = $this->prepareDefaultDataCollector($config, $ids); $reader = new ArrayReader($dataCollector->getExportData()); $writer = new CsvFileWriter('system/tmp/' . File::getName($config)); // Add header fields if ($config->headerFields) { $reader->setHeaderFields($this->prepareDefaultHeaderFields($config, $dataCollector)); $writer->enableHeaderFields(); } $row = new Row($config, $this->prepareDefaultExportConfig($config, $dataCollector)); $writer->setRowCallback(function ($data) use($row) { return $row->compile($data); }); $this->handleDefaultExportResult($writer->writeFrom($reader)); $this->updateLastRun($config); $objFile = new \File($writer->getFilename()); $objFile->sendToBrowser(); }