From e981497e5964e6b386507bc0e741fabb7d519e5c Mon Sep 17 00:00:00 2001 From: marvin255 Date: Mon, 3 Aug 2020 21:03:25 +0200 Subject: [PATCH] add recoursive directory iterator (#23) * fix code style - add brackets to new * add nested iterator for SelectFilesToProceedTask --- .php_cs.dist | 2 +- src/FiasInformer/SoapFiasInformer.php | 4 +- .../Task/SelectFilesToProceedTask.php | 11 ++- src/Unpacker/ZipUnpacker.php | 2 +- src/XmlReader/BaseXmlReader.php | 2 +- .../EntityManager/BaseEntityManagerTest.php | 2 +- .../FiasInformer/InformerResponseBaseTest.php | 8 +-- .../src/FiasInformer/SoapFiasInformerTest.php | 10 +-- tests/src/Pipeline/Pipe/ArrayPipeTest.php | 2 +- tests/src/Pipeline/State/ArrayStateTest.php | 10 +-- tests/src/Pipeline/Task/CleanupTaskTest.php | 4 +- .../src/Pipeline/Task/DataDeleteTaskTest.php | 4 +- .../src/Pipeline/Task/DataInsertTaskTest.php | 10 +-- .../src/Pipeline/Task/DataUpsertTaskTest.php | 4 +- .../Task/SelectFilesToProceedTaskTest.php | 69 +++++++++++++------ ...ctFilesToProceedTaskTest_nested_delete.xml | 1 + ...ctFilesToProceedTaskTest_nested_insert.xml | 1 + .../src/Serializer/FiasNameConverterTest.php | 4 +- tests/src/Serializer/FiasSerializerTest.php | 2 +- tests/src/XmlReader/BaseXmlReaderTest.php | 14 ++-- 20 files changed, 99 insertions(+), 67 deletions(-) create mode 100644 tests/src/Pipeline/Task/_fixtures/nested/SelectFilesToProceedTaskTest_nested_delete.xml create mode 100644 tests/src/Pipeline/Task/_fixtures/nested/SelectFilesToProceedTaskTest_nested_insert.xml diff --git a/.php_cs.dist b/.php_cs.dist index 8143dbf3..f2c32218 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -4,7 +4,7 @@ $finder = PhpCsFixer\Finder::create()->in(__DIR__); $rules = [ '@Symfony' => true, - 'new_with_braces' => false, + 'new_with_braces' => true, 'phpdoc_inline_tag' => false, 'concat_space' => ['spacing' => 'one'], 'array_syntax' => ['syntax' => 'short'], diff --git a/src/FiasInformer/SoapFiasInformer.php b/src/FiasInformer/SoapFiasInformer.php index 3db9d8ec..242377e7 100644 --- a/src/FiasInformer/SoapFiasInformer.php +++ b/src/FiasInformer/SoapFiasInformer.php @@ -41,7 +41,7 @@ public function getCompleteInfo(): InformerResponse { $response = $this->getSoapClient()->__call('GetLastDownloadFileInfo', []); - $res = new InformerResponseBase; + $res = new InformerResponseBase(); $res->setVersion((int) $response->GetLastDownloadFileInfoResult->VersionId); $res->setUrl($response->GetLastDownloadFileInfoResult->FiasCompleteXmlUrl); @@ -56,7 +56,7 @@ public function getDeltaInfo(int $version): InformerResponse $response = $this->getSoapClient()->__call('GetAllDownloadFileInfo', []); $versions = $this->sortResponseByVersion($response->GetAllDownloadFileInfoResult->DownloadFileInfo); - $res = new InformerResponseBase; + $res = new InformerResponseBase(); foreach ($versions as $serviceVersion) { if ((int) $serviceVersion['VersionId'] <= $version) { continue; diff --git a/src/Pipeline/Task/SelectFilesToProceedTask.php b/src/Pipeline/Task/SelectFilesToProceedTask.php index 32f8b295..2a979f08 100644 --- a/src/Pipeline/Task/SelectFilesToProceedTask.php +++ b/src/Pipeline/Task/SelectFilesToProceedTask.php @@ -9,6 +9,7 @@ use Liquetsoft\Fias\Component\Pipeline\State\State; use Psr\Log\LogLevel; use RecursiveDirectoryIterator; +use RecursiveIteratorIterator; use SplFileInfo; class SelectFilesToProceedTask implements Task, LoggableTask @@ -96,19 +97,23 @@ protected function getFilesForProceedFromFolder(SplFileInfo $filesFolder): array $filesToInsert = []; $filesToDelete = []; - $iterator = new RecursiveDirectoryIterator( + $directoryIterator = new RecursiveDirectoryIterator( $filesFolder->getRealPath(), RecursiveDirectoryIterator::SKIP_DOTS ); + $iterator = new RecursiveIteratorIterator($directoryIterator); foreach ($iterator as $fileInfo) { if ($this->isFileAllowedToInsert($fileInfo)) { - $filesToInsert[] = $fileInfo->getRealPath(); + $filesToInsert[] = (string) $fileInfo->getRealPath(); } elseif ($this->isFileAllowedToDelete($fileInfo)) { - $filesToDelete[] = $fileInfo->getRealPath(); + $filesToDelete[] = (string) $fileInfo->getRealPath(); } } + sort($filesToInsert, SORT_STRING); + sort($filesToDelete, SORT_STRING); + return [$filesToInsert, $filesToDelete]; } diff --git a/src/Unpacker/ZipUnpacker.php b/src/Unpacker/ZipUnpacker.php index b44c6dea..3dca2c4d 100644 --- a/src/Unpacker/ZipUnpacker.php +++ b/src/Unpacker/ZipUnpacker.php @@ -39,7 +39,7 @@ public function unpack(SplFileInfo $source, SplFileInfo $destination): void private function runUnZip(SplFileInfo $source, SplFileInfo $destination): void { $filePath = $source->getPathName(); - $zip = new ZipArchive; + $zip = new ZipArchive(); if ($zip->open($filePath) === true) { $zip->extractTo($destination->getPathName()); $zip->close(); diff --git a/src/XmlReader/BaseXmlReader.php b/src/XmlReader/BaseXmlReader.php index 34571ec2..d0aa2e54 100644 --- a/src/XmlReader/BaseXmlReader.php +++ b/src/XmlReader/BaseXmlReader.php @@ -273,7 +273,7 @@ protected function resetReader(): PhpXmlReader } $this->unsetReader(); - $this->reader = new PhpXmlReader; + $this->reader = new PhpXmlReader(); if ($this->reader->open($this->file->getPathname(), 'UTF-8', LIBXML_COMPACT | LIBXML_NONET | LIBXML_NOBLANKS) === false) { throw new RuntimeException( diff --git a/tests/src/EntityManager/BaseEntityManagerTest.php b/tests/src/EntityManager/BaseEntityManagerTest.php index 3f086d78..add2e74f 100644 --- a/tests/src/EntityManager/BaseEntityManagerTest.php +++ b/tests/src/EntityManager/BaseEntityManagerTest.php @@ -188,7 +188,7 @@ public function testGetDescriptorByObject() $entityName1 => $class1, ]); - $this->assertSame($descriptor, $manager->getDescriptorByObject(new \stdClass)); + $this->assertSame($descriptor, $manager->getDescriptorByObject(new \stdClass())); $this->assertNull($manager->getDescriptorByObject('TestEmpty')); } diff --git a/tests/src/FiasInformer/InformerResponseBaseTest.php b/tests/src/FiasInformer/InformerResponseBaseTest.php index 59f69059..96bfb7ec 100644 --- a/tests/src/FiasInformer/InformerResponseBaseTest.php +++ b/tests/src/FiasInformer/InformerResponseBaseTest.php @@ -21,7 +21,7 @@ public function testGetSetVersion() { $version = $this->createFakeData()->numberBetween(1, 10000); - $res = new InformerResponseBase; + $res = new InformerResponseBase(); $res->setVersion($version); $this->assertSame($version, $res->getVersion()); @@ -34,7 +34,7 @@ public function testGetSetUrl() { $url = $this->createFakeData()->url; - $res = new InformerResponseBase; + $res = new InformerResponseBase(); $res->setUrl($url); $this->assertSame($url, $res->getUrl()); @@ -45,7 +45,7 @@ public function testGetSetUrl() */ public function testHasResult() { - $res = new InformerResponseBase; + $res = new InformerResponseBase(); $this->assertFalse($res->hasResult()); @@ -61,7 +61,7 @@ public function testHasResult() */ public function testSetUrlWrongFormatException() { - $res = new InformerResponseBase; + $res = new InformerResponseBase(); $this->expectException(InvalidArgumentException::class); $res->setUrl($this->createFakeData()->word); diff --git a/tests/src/FiasInformer/SoapFiasInformerTest.php b/tests/src/FiasInformer/SoapFiasInformerTest.php index 50d9e763..6661ee9a 100644 --- a/tests/src/FiasInformer/SoapFiasInformerTest.php +++ b/tests/src/FiasInformer/SoapFiasInformerTest.php @@ -20,8 +20,8 @@ class SoapFiasInformerTest extends BaseCase */ public function testGetCompleteInfo() { - $soapResponse = new stdClass; - $soapResponse->GetLastDownloadFileInfoResult = new stdClass; + $soapResponse = new stdClass(); + $soapResponse->GetLastDownloadFileInfoResult = new stdClass(); $soapResponse->GetLastDownloadFileInfoResult->FiasCompleteXmlUrl = $this->createFakeData()->url; $soapResponse->GetLastDownloadFileInfoResult->VersionId = $this->createFakeData()->randomNumber; @@ -50,8 +50,8 @@ public function testGetCompleteInfo() */ public function testGetDeltaInfo() { - $soapResponse = new stdClass; - $soapResponse->GetAllDownloadFileInfoResult = new stdClass; + $soapResponse = new stdClass(); + $soapResponse->GetAllDownloadFileInfoResult = new stdClass(); $soapResponse->GetAllDownloadFileInfoResult->DownloadFileInfo = []; $totalDeltas = 10; @@ -59,7 +59,7 @@ public function testGetDeltaInfo() $nextDelta = $currentDelta + 1; $nextUrl = null; for ($i = 1; $i <= $totalDeltas; ++$i) { - $delta = new stdClass; + $delta = new stdClass(); $delta->VersionId = $i; $delta->FiasDeltaXmlUrl = $this->createFakeData()->url; $soapResponse->GetAllDownloadFileInfoResult->DownloadFileInfo[] = $delta; diff --git a/tests/src/Pipeline/Pipe/ArrayPipeTest.php b/tests/src/Pipeline/Pipe/ArrayPipeTest.php index 226526ec..fa46fc3f 100644 --- a/tests/src/Pipeline/Pipe/ArrayPipeTest.php +++ b/tests/src/Pipeline/Pipe/ArrayPipeTest.php @@ -111,7 +111,7 @@ public function testRunException() $task1 = $this->getMockBuilder(Task::class)->getMock(); $task2 = $this->getMockBuilder(Task::class)->getMock(); - $task2->method('run')->will($this->throwException(new InvalidArgumentException)); + $task2->method('run')->will($this->throwException(new InvalidArgumentException())); $pipe = new ArrayPipe([$task1, $task2], $cleanUp); diff --git a/tests/src/Pipeline/State/ArrayStateTest.php b/tests/src/Pipeline/State/ArrayStateTest.php index 5abb66ef..5ca59113 100644 --- a/tests/src/Pipeline/State/ArrayStateTest.php +++ b/tests/src/Pipeline/State/ArrayStateTest.php @@ -21,7 +21,7 @@ public function testSetAndGetParameter() $parameterName = $this->createFakeData()->word; $parameterValue = $this->createFakeData()->word; - $state = new ArrayState; + $state = new ArrayState(); $state->setParameter($parameterName, $parameterValue); $this->assertSame($parameterValue, $state->getParameter($parameterName)); @@ -35,7 +35,7 @@ public function testSetAndLockParameter() $parameterName = $this->createFakeData()->word; $parameterValue = $this->createFakeData()->word; - $state = new ArrayState; + $state = new ArrayState(); $state->setAndLockParameter($parameterName, $parameterValue); $this->assertSame($parameterValue, $state->getParameter($parameterName)); @@ -50,7 +50,7 @@ public function testSetParameterLockedException() $parameterName = $this->createFakeData()->word; $parameterValue = $this->createFakeData()->word; - $state = new ArrayState; + $state = new ArrayState(); $state->setAndLockParameter($parameterName, $parameterValue); $this->expectException(InvalidArgumentException::class); @@ -62,9 +62,9 @@ public function testSetParameterLockedException() */ public function testComplete() { - $state = new ArrayState; + $state = new ArrayState(); - $stateCompleted = new ArrayState; + $stateCompleted = new ArrayState(); $stateCompleted->complete(); $this->assertFalse($state->isCompleted()); diff --git a/tests/src/Pipeline/Task/CleanupTaskTest.php b/tests/src/Pipeline/Task/CleanupTaskTest.php index 109fdccb..bab37499 100644 --- a/tests/src/Pipeline/Task/CleanupTaskTest.php +++ b/tests/src/Pipeline/Task/CleanupTaskTest.php @@ -40,7 +40,7 @@ public function testRun() return $return; })); - $task = new CleanupTask; + $task = new CleanupTask(); $task->run($state); $this->assertFalse(file_exists($downloadToPath), 'Downloaded file removed'); @@ -60,7 +60,7 @@ public function testRunEmptyFiles() return $name === Task::DOWNLOAD_TO_FILE_PARAM ? $downloadTo : null; })); - $task = new CleanupTask; + $task = new CleanupTask(); $task->run($state); $this->assertFalse(file_exists($downloadToPath), 'Downloaded file removed'); diff --git a/tests/src/Pipeline/Task/DataDeleteTaskTest.php b/tests/src/Pipeline/Task/DataDeleteTaskTest.php index 15f2dd59..6ca71b2d 100644 --- a/tests/src/Pipeline/Task/DataDeleteTaskTest.php +++ b/tests/src/Pipeline/Task/DataDeleteTaskTest.php @@ -46,10 +46,10 @@ public function testRun() $insertedData[] = $object->getActstatid(); })); - $state = new ArrayState; + $state = new ArrayState(); $state->setParameter(Task::FILES_TO_DELETE_PARAM, [__DIR__ . '/_fixtures/data.xml']); - $task = new DataDeleteTask($entityManager, new BaseXmlReader, $storage, new FiasSerializer); + $task = new DataDeleteTask($entityManager, new BaseXmlReader(), $storage, new FiasSerializer()); $task->run($state); $this->assertSame([321], $insertedData); diff --git a/tests/src/Pipeline/Task/DataInsertTaskTest.php b/tests/src/Pipeline/Task/DataInsertTaskTest.php index 81f17fdb..ee9acb9b 100644 --- a/tests/src/Pipeline/Task/DataInsertTaskTest.php +++ b/tests/src/Pipeline/Task/DataInsertTaskTest.php @@ -49,10 +49,10 @@ public function testRun() $insertedData[] = $object->getActstatid(); })); - $state = new ArrayState; + $state = new ArrayState(); $state->setParameter(Task::FILES_TO_INSERT_PARAM, [__DIR__ . '/_fixtures/data.xml']); - $task = new DataInsertTask($entityManager, new BaseXmlReader, $storage, new FiasSerializer); + $task = new DataInsertTask($entityManager, new BaseXmlReader(), $storage, new FiasSerializer()); $task->run($state); $this->assertSame([321], $insertedData); @@ -83,13 +83,13 @@ public function testRunDeserializeException() $insertedData[] = $object->getActstatid(); })); - $state = new ArrayState; + $state = new ArrayState(); $state->setParameter(Task::FILES_TO_INSERT_PARAM, [__DIR__ . '/_fixtures/data.xml']); $serializer = $this->getMockBuilder(SerializerInterface::class)->getMock(); - $serializer->method('deserialize')->will($this->throwException(new InvalidArgumentException)); + $serializer->method('deserialize')->will($this->throwException(new InvalidArgumentException())); - $task = new DataInsertTask($entityManager, new BaseXmlReader, $storage, $serializer); + $task = new DataInsertTask($entityManager, new BaseXmlReader(), $storage, $serializer); $this->expectException(TaskException::class); $task->run($state); diff --git a/tests/src/Pipeline/Task/DataUpsertTaskTest.php b/tests/src/Pipeline/Task/DataUpsertTaskTest.php index 587a1ce1..790e7a32 100644 --- a/tests/src/Pipeline/Task/DataUpsertTaskTest.php +++ b/tests/src/Pipeline/Task/DataUpsertTaskTest.php @@ -46,10 +46,10 @@ public function testRun() $insertedData[] = $object->getActstatid(); })); - $state = new ArrayState; + $state = new ArrayState(); $state->setParameter(Task::FILES_TO_INSERT_PARAM, [__DIR__ . '/_fixtures/data.xml']); - $task = new DataUpsertTask($entityManager, new BaseXmlReader, $storage, new FiasSerializer); + $task = new DataUpsertTask($entityManager, new BaseXmlReader(), $storage, new FiasSerializer()); $task->run($state); $this->assertSame([321], $insertedData); diff --git a/tests/src/Pipeline/Task/SelectFilesToProceedTaskTest.php b/tests/src/Pipeline/Task/SelectFilesToProceedTaskTest.php index 236e59cd..5d322608 100644 --- a/tests/src/Pipeline/Task/SelectFilesToProceedTaskTest.php +++ b/tests/src/Pipeline/Task/SelectFilesToProceedTaskTest.php @@ -12,6 +12,7 @@ use Liquetsoft\Fias\Component\Pipeline\Task\Task; use Liquetsoft\Fias\Component\Tests\BaseCase; use SplFileInfo; +use stdClass; /** * Тест для задачи, которая выбирает файлы из папки для загрузки в базу на основе данных из EntityManager. @@ -24,7 +25,7 @@ class SelectFilesToProceedTaskTest extends BaseCase public function testRunEmptyUnpackToException() { $entityManager = $this->getMockBuilder(EntityManager::class)->getMock(); - $state = new ArrayState; + $state = new ArrayState(); $task = new SelectFilesToProceedTask($entityManager); @@ -39,7 +40,7 @@ public function testRunNonExitedUnpackToException() { $entityManager = $this->getMockBuilder(EntityManager::class)->getMock(); - $state = new ArrayState; + $state = new ArrayState(); $state->setParameter( Task::EXTRACT_TO_FOLDER_PARAM, new SplFileInfo(__DIR__ . '/test') @@ -61,36 +62,60 @@ public function testRun() $descriptor = $this->getMockBuilder(EntityDescriptor::class)->getMock(); $entityManager = $this->getMockBuilder(EntityManager::class)->getMock(); - $entityManager->method('getDescriptorByInsertFile')->will($this->returnCallback(function ($file) use ($descriptor) { - return $file === 'SelectFilesToProceedTaskTest_insert.xml' ? $descriptor : null; - })); - $entityManager->method('getDescriptorByDeleteFile')->will($this->returnCallback(function ($file) use ($descriptor) { - return $file === 'SelectFilesToProceedTaskTest_delete.xml' ? $descriptor : null; - })); - $entityManager->method('getClassByDescriptor')->will($this->returnCallback(function ($testDescriptor) use ($descriptor) { - return $testDescriptor === $descriptor ? SelectFilesToProceedTaskObject::class : null; - })); - - $state = new ArrayState; + $entityManager->method('getDescriptorByInsertFile') + ->will( + $this->returnCallback( + function ($file) use ($descriptor) { + $files = [ + 'SelectFilesToProceedTaskTest_insert.xml', + 'SelectFilesToProceedTaskTest_nested_insert.xml', + ]; + + return in_array($file, $files, true) ? $descriptor : null; + } + ) + ); + $entityManager->method('getDescriptorByDeleteFile') + ->will( + $this->returnCallback( + function ($file) use ($descriptor) { + $files = [ + 'SelectFilesToProceedTaskTest_delete.xml', + 'SelectFilesToProceedTaskTest_nested_delete.xml', + ]; + + return in_array($file, $files, true) ? $descriptor : null; + } + ) + ); + $entityManager->method('getClassByDescriptor') + ->will( + $this->returnCallback( + function ($testDescriptor) use ($descriptor) { + return $testDescriptor === $descriptor ? stdClass::class : null; + } + ) + ); + + $state = new ArrayState(); $state->setParameter(Task::EXTRACT_TO_FOLDER_PARAM, new SplFileInfo($fixturesFolder)); $task = new SelectFilesToProceedTask($entityManager); $task->run($state); $this->assertSame( - [$fixturesFolder . '/SelectFilesToProceedTaskTest_insert.xml'], + [ + $fixturesFolder . '/SelectFilesToProceedTaskTest_insert.xml', + $fixturesFolder . '/nested/SelectFilesToProceedTaskTest_nested_insert.xml', + ], $state->getParameter(Task::FILES_TO_INSERT_PARAM) ); $this->assertSame( - [$fixturesFolder . '/SelectFilesToProceedTaskTest_delete.xml'], + [ + $fixturesFolder . '/SelectFilesToProceedTaskTest_delete.xml', + $fixturesFolder . '/nested/SelectFilesToProceedTaskTest_nested_delete.xml', + ], $state->getParameter(Task::FILES_TO_DELETE_PARAM) ); } } - -/** - * Мок для проверки задачи, которая выбирает файлы для обработки. - */ -class SelectFilesToProceedTaskObject -{ -} diff --git a/tests/src/Pipeline/Task/_fixtures/nested/SelectFilesToProceedTaskTest_nested_delete.xml b/tests/src/Pipeline/Task/_fixtures/nested/SelectFilesToProceedTaskTest_nested_delete.xml new file mode 100644 index 00000000..b5c1f91f --- /dev/null +++ b/tests/src/Pipeline/Task/_fixtures/nested/SelectFilesToProceedTaskTest_nested_delete.xml @@ -0,0 +1 @@ + diff --git a/tests/src/Pipeline/Task/_fixtures/nested/SelectFilesToProceedTaskTest_nested_insert.xml b/tests/src/Pipeline/Task/_fixtures/nested/SelectFilesToProceedTaskTest_nested_insert.xml new file mode 100644 index 00000000..b5c1f91f --- /dev/null +++ b/tests/src/Pipeline/Task/_fixtures/nested/SelectFilesToProceedTaskTest_nested_insert.xml @@ -0,0 +1 @@ + diff --git a/tests/src/Serializer/FiasNameConverterTest.php b/tests/src/Serializer/FiasNameConverterTest.php index 3b6634aa..206135a7 100644 --- a/tests/src/Serializer/FiasNameConverterTest.php +++ b/tests/src/Serializer/FiasNameConverterTest.php @@ -20,7 +20,7 @@ public function testNormalize() $name = ' @TEST'; $name1 = 'tEst1 '; - $converter = new FiasNameConverter; + $converter = new FiasNameConverter(); $this->assertSame('@TEST', $converter->normalize($name)); $this->assertSame('@tEst1', $converter->normalize($name1)); @@ -34,7 +34,7 @@ public function testDenormalize() $name = ' @TEST'; $name1 = 'tEst1 '; - $converter = new FiasNameConverter; + $converter = new FiasNameConverter(); $this->assertSame('TEST', $converter->denormalize($name)); $this->assertSame('tEst1', $converter->denormalize($name1)); diff --git a/tests/src/Serializer/FiasSerializerTest.php b/tests/src/Serializer/FiasSerializerTest.php index ad2948ec..f81ee35f 100644 --- a/tests/src/Serializer/FiasSerializerTest.php +++ b/tests/src/Serializer/FiasSerializerTest.php @@ -28,7 +28,7 @@ public function testDenormalize() EMPTYSTRINGINT="" /> EOT; - $serializer = new FiasSerializer; + $serializer = new FiasSerializer(); $object = $serializer->deserialize($data, FiasSerializerObject::class, 'xml'); diff --git a/tests/src/XmlReader/BaseXmlReaderTest.php b/tests/src/XmlReader/BaseXmlReaderTest.php index cdccb4cc..30042c07 100644 --- a/tests/src/XmlReader/BaseXmlReaderTest.php +++ b/tests/src/XmlReader/BaseXmlReaderTest.php @@ -22,7 +22,7 @@ public function testOpenUnexistedFileException() { $file = new SplFileInfo(__DIR__ . '/_fixtures/empty.xml'); - $reader = new BaseXmlReader; + $reader = new BaseXmlReader(); $this->expectException(InvalidArgumentException::class); $reader->open($file, '/ActualStatuses/ActualStatus'); @@ -33,7 +33,7 @@ public function testOpenUnexistedFileException() */ public function testReadNotOpenException() { - $reader = new BaseXmlReader; + $reader = new BaseXmlReader(); $this->expectException(XmlException::class); $result = []; @@ -47,7 +47,7 @@ public function testReadNotOpenException() */ public function testReadNotOpenExceptionIterator() { - $reader = new BaseXmlReader; + $reader = new BaseXmlReader(); $this->expectException(XmlException::class); $reader->current(); @@ -60,7 +60,7 @@ public function testRead() { $file = new SplFileInfo(__DIR__ . '/_fixtures/testRead.xml'); - $reader = new BaseXmlReader; + $reader = new BaseXmlReader(); $reader->open($file, '/ActualStatuses/ActualStatus'); foreach ($reader as $key => $item) { } @@ -79,7 +79,7 @@ public function testReadEmpty() { $file = new SplFileInfo(__DIR__ . '/_fixtures/testReadEmpty.xml'); - $reader = new BaseXmlReader; + $reader = new BaseXmlReader(); $reader->open($file, '/ActualStatuses/ActualStatus'); $result = []; foreach ($reader as $key => $item) { @@ -98,7 +98,7 @@ public function testReadMessyFile() { $file = new SplFileInfo(__DIR__ . '/_fixtures/testReadMessyFile.xml'); - $reader = new BaseXmlReader; + $reader = new BaseXmlReader(); $reader->open($file, '/root/firstLevel/secondLevel/realItem'); $result = []; foreach ($reader as $key => $item) { @@ -120,7 +120,7 @@ public function testReadException() { $file = new SplFileInfo(__DIR__ . '/_fixtures/testReadException.xml'); - $reader = new BaseXmlReader; + $reader = new BaseXmlReader(); $reader->open($file, '/root/qwe'); $this->expectException(XmlException::class);