/** * @param Import $import * @param array $targets * @param array $configuration * @param ResourceInterface $resource * @param ManagerInterface $manager * @return bool * @throws \HDNET\Importr\Exception\ReinitializeException */ public function process(Import $import, array $targets, array $configuration, ResourceInterface $resource, ManagerInterface $manager) { // Resourcen Object anhand der Datei auswählen if (!preg_match($resource->getFilepathExpression(), $import->getFilepath())) { return false; } $this->configuration->process($configuration, $manager, 'before'); // Resource "benutzen" $resource->parseResource(); // Basis Import Aktualsieren (DB) $import->setAmount($resource->getAmount()); $import->setStarttime(new \DateTime('now')); $this->importService->updateImport($import); // Durchlauf starten for ($pointer = $import->getPointer(); $pointer < $import->getAmount(); $pointer++) { $this->configuration->process($configuration, $manager, 'each'); $this->processOneLine($resource, $pointer, $targets, $import); if (($pointer + 1) % $manager->getUpdateInterval() == 0) { $this->importService->updateImport($import, $pointer + 1); } } $import->setEndtime(new \DateTime('now')); $this->importService->updateImport($import, $pointer); $this->configuration->process($configuration, $manager, 'after'); return true; }
/** * @test */ public function does_not_processes_with_invalid_filter() { $manager = $this->getMock(ManagerInterface::class); $this->dispatcher->expects($this->never())->method('dispatch'); $result = $this->fixture->process(['each' => ['updateInterval' => 42]], $manager, 'lorem_ipsum'); }