/** * @depends testAppendStreamOnNewFile * * @param ExtendedFilesystem $fs * * @return ExtendedFilesystem */ public function testAppendStreamOnExistingFile(ExtendedFilesystem $fs) { $newFile = "new_file.txt"; $orig = <<<STRING abcdefghijklmn STRING; $fs->write($newFile, $orig); $str = <<<STRING opqrst STRING; $fh = $fs->appendStream($newFile); fwrite($fh, $str); fclose($fh); $this->assertContains($orig . $str, $fs->read($newFile)); $str2 = <<<STRING uvwxyz STRING; $fs->append($newFile, $str2); $this->assertContains($orig . $str . $str2, $fs->read($newFile)); return $fs; }
public function testDataImportExportWithGzipAndParallel() { $exportPrefix = "redshift_ut_" . time(); $this->testDataImport(true); $exporter = new RedshiftExporter(self::$rs, self::$localFs, self::$s3Fs, self::$s3Region, self::$sts); $exporter->exportToFile($exportPrefix, "SELECT * FROM php_redshift_test", true, true, true); $exportedCount = 0; $finder = self::$localFs->getFinder(); $finder->path("#^" . preg_quote($exportPrefix, "#") . "#"); $unloaded = []; foreach ($finder as $splFileInfo) { $relativePathname = $splFileInfo->getRelativePathname(); $unloaded[] = $relativePathname; $content = self::$localFs->read($relativePathname); mdebug(gzdecode($content)); $fh = fopen('php://memory', 'r+'); fwrite($fh, gzdecode($content)); rewind($fh); $reader = new DrdStreamReader($fh, self::FIELDS); while ($reader->readRecord()) { $exportedCount++; } fclose($fh); } self::assertEquals(5, $exportedCount); // test import of parallel data $importer = new RedshiftImporter(self::$rs, self::$localFs, self::$s3Fs, self::$s3Region, self::$sts); $importer->importFromFile($exportPrefix, 'php_redshift_test', self::FIELDS, true, true); $stmt = self::$rs->prepare("SELECT COUNT(*) FROM php_redshift_test"); $stmt->execute(); $result = $stmt->fetchColumn(); self::assertEquals(10, $result); foreach ($unloaded as $relativePathname) { self::$localFs->delete($relativePathname); } }