configurationToUseInTestInstance['SYS']['FileInfo']['fileExtensionToMimeType']['jpg'] = 'image/jpg'; parent::setUp(); $fileImportPathConfiguration = 'staedte/beispielstadt/events/'; $this->fileImportPath = $this->getInstancePath() . '/fileadmin/' . $fileImportPathConfiguration; GeneralUtility::mkdir_deep($this->fileImportPath); $this->importPHPDataSet(__DIR__ . '/Fixtures/Database/DefaultImportConfiguration.php'); $this->setUpConfiguration([ 'restUrl = https://example.com/some-path/', 'license = example-license', 'restType = Event', 'restLimit = 3', 'restMode = next_months,12', 'restTemplate = ET2014A.json', ]); } protected function tearDown(): void { parent::tearDown(); GeneralUtility::rmdir($this->fileImportPath, true); } /** * @test */ public function addsNewImages(): void { $this->setUpResponses([ new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ResponseWithNewImages.json') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), ]); $this->executeCommand(); $this->assertPHPDataSet(__DIR__ . '/Assertions/ImportHandlesImagesAddsNewImages.php'); $importedFiles = GeneralUtility::getFilesInDir($this->fileImportPath); self::assertIsArray($importedFiles, 'Failed to retrieve imported files from filesystem.'); self::assertSame( [ 'lutherkirche-jpg.jpg', 'theater-rudolstadt_johannes-gei-er_photo-by-lisa-stern_web_-jpg.jpg', 'tueftlerzeit-sfz-rudolstadt-jpg.jpg', ], array_values($importedFiles), 'Got unexpected number of files' ); self::assertFileEquals( __DIR__ . '/Assertions/EmptyLogFile.txt', $this->getInstancePath() . '/typo3temp/var/log/typo3_0493d91d8e.log', 'Logfile was not empty.' ); } /** * @test */ public function addsMultipleImagesToSingleEvent(): void { $this->setUpResponses([ new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ResponseWithMultipleImagesForSingleEvent.json') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), ]); $this->executeCommand(); $this->assertPHPDataSet(__DIR__ . '/Assertions/ImportHandlesImagesAddsMultipleImagestoSingleEvent.php'); $importedFiles = GeneralUtility::getFilesInDir($this->fileImportPath); self::assertIsArray($importedFiles, 'Failed to retrieve imported files from filesystem.'); self::assertSame( [ 'theater-rudolstadt_johannes-gei-er_photo-by-lisa-stern_web_-jpg.jpg', 'tueftlerzeit-sfz-rudolstadt-jpg.jpg', ], array_values($importedFiles), 'Got unexpected number of files' ); self::assertFileEquals( __DIR__ . '/Assertions/EmptyLogFile.txt', $this->getInstancePath() . '/typo3temp/var/log/typo3_0493d91d8e.log', 'Logfile was not empty.' ); } /** * @test */ public function removesNoLongerExistingImages(): void { $this->importPHPDataSet(__DIR__ . '/Fixtures/Database/ImportHandlesImagesExistingData.php'); copy(__DIR__ . '/Fixtures/ExampleImage.jpg', $this->fileImportPath . '/theater-rudolstadt_johannes-gei-er_photo-by-lisa-stern_web_-jpg.jpg'); copy(__DIR__ . '/Fixtures/ExampleImage.jpg', $this->fileImportPath . '/tueftlerzeit-sfz-rudolstadt-jpg.jpg'); $this->setUpResponses([ new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ResponseWithSingleImageForSingleEvent.json') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), ]); $this->executeCommand(); $this->assertPHPDataSet(__DIR__ . '/Assertions/ImportHandlesImagesRemovesNoLongerExistingImages.php'); $importedFiles = GeneralUtility::getFilesInDir($this->fileImportPath); self::assertIsArray($importedFiles, 'Failed to retrieve imported files from filesystem.'); self::assertSame( [ 'theater-rudolstadt_johannes-gei-er_photo-by-lisa-stern_web_-jpg.jpg', 'tueftlerzeit-sfz-rudolstadt-jpg.jpg', ], array_values($importedFiles), 'Got unexpected number of files' ); self::assertFileEquals( __DIR__ . '/Assertions/EmptyLogFile.txt', $this->getInstancePath() . '/typo3temp/var/log/typo3_0493d91d8e.log', 'Logfile was not empty.' ); } /** * @test */ public function updatesExistingImage(): void { $this->importPHPDataSet(__DIR__ . '/Fixtures/Database/ImportHandlesImagesExistingData.php'); copy(__DIR__ . '/Fixtures/ExampleImage.jpg', $this->fileImportPath . '/theater-rudolstadt_johannes-gei-er_photo-by-lisa-stern_web_-jpg.jpg'); copy(__DIR__ . '/Fixtures/ExampleImage.jpg', $this->fileImportPath . '/tueftlerzeit-sfz-rudolstadt-jpg.jpg'); $this->setUpResponses([ new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ResponseWithMultipleImagesForSingleEvent.json') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), ]); $this->executeCommand(); $this->assertPHPDataSet(__DIR__ . '/Assertions/ImportHandlesImagesUpdatesExistingImage.php'); $importedFiles = GeneralUtility::getFilesInDir($this->fileImportPath); self::assertIsArray($importedFiles, 'Failed to retrieve imported files from filesystem.'); self::assertSame( [ 'theater-rudolstadt_johannes-gei-er_photo-by-lisa-stern_web_-jpg.jpg', 'tueftlerzeit-sfz-rudolstadt-jpg.jpg', ], array_values($importedFiles), 'Got unexpected number of files' ); self::assertFileEquals( __DIR__ . '/Assertions/EmptyLogFile.txt', $this->getInstancePath() . '/typo3temp/var/log/typo3_0493d91d8e.log', 'Logfile was not empty.' ); } /** * @test */ public function addsNewImageToExistingImages(): void { $this->importPHPDataSet(__DIR__ . '/Fixtures/Database/ImportHandlesImagesExistingData.php'); copy(__DIR__ . '/Fixtures/ExampleImage.jpg', $this->fileImportPath . '/theater-rudolstadt_johannes-gei-er_photo-by-lisa-stern_web_-jpg.jpg'); copy(__DIR__ . '/Fixtures/ExampleImage.jpg', $this->fileImportPath . '/tueftlerzeit-sfz-rudolstadt-jpg.jpg'); $this->setUpResponses([ new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ResponseWithOneMoreImageForSingleEvent.json') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), ]); $this->executeCommand(); $this->assertPHPDataSet(__DIR__ . '/Assertions/ImportHandlesImagesAddsNewImageToExistingImages.php'); $importedFiles = GeneralUtility::getFilesInDir($this->fileImportPath); self::assertIsArray($importedFiles, 'Failed to retrieve imported files from filesystem.'); self::assertSame( [ 'lutherkirche-jpg.jpg', 'theater-rudolstadt_johannes-gei-er_photo-by-lisa-stern_web_-jpg.jpg', 'tueftlerzeit-sfz-rudolstadt-jpg.jpg', ], array_values($importedFiles), 'Got unexpected number of files' ); self::assertFileEquals( __DIR__ . '/Assertions/EmptyLogFile.txt', $this->getInstancePath() . '/typo3temp/var/log/typo3_0493d91d8e.log', 'Logfile was not empty.' ); } /** * @test */ public function updatesSortingOfImages(): void { $this->importPHPDataSet(__DIR__ . '/Fixtures/Database/ImportHandlesImagesExistingData.php'); copy(__DIR__ . '/Fixtures/ExampleImage.jpg', $this->fileImportPath . '/theater-rudolstadt_johannes-gei-er_photo-by-lisa-stern_web_-jpg.jpg'); copy(__DIR__ . '/Fixtures/ExampleImage.jpg', $this->fileImportPath . '/tueftlerzeit-sfz-rudolstadt-jpg.jpg'); $this->setUpResponses([ new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ResponseWithSortedImagesForSingleEvent.json') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ExampleImage.jpg') ?: ''), ]); $this->executeCommand(); $this->assertPHPDataSet(__DIR__ . '/Assertions/ImportHandlesImagesUpdatesSortingOfImages.php'); $importedFiles = GeneralUtility::getFilesInDir($this->fileImportPath); self::assertIsArray($importedFiles, 'Failed to retrieve imported files from filesystem.'); self::assertSame( [ 'theater-rudolstadt_johannes-gei-er_photo-by-lisa-stern_web_-jpg.jpg', 'tueftlerzeit-sfz-rudolstadt-jpg.jpg', ], array_values($importedFiles), 'Got unexpected number of files' ); self::assertFileEquals( __DIR__ . '/Assertions/EmptyLogFile.txt', $this->getInstancePath() . '/typo3temp/var/log/typo3_0493d91d8e.log', 'Logfile was not empty.' ); } }