/** * @dataProvider getModifiedItems */ public function testModifiedItems(\DateTime $sourceDate, \DateTime $itemDate = null) { $this->source->setDatetimeModified($sourceDate); $item = new FeedItemBag(new OriginMock(1234), new FeedMock(123), '123abc'); $item->setDatetimeModified($itemDate); $filter = new ModifiedItemFilter($this->sourceManager); $filter->filter($item); }
/** * @inheritdoc */ public function process(SourceInterface $source) { if ($source->isBlocked()) { throw new SourceProcessException('Source is blocked and should not be processed'); } foreach ($this->processors as $processor) { if ($processor->supports($source) && $processor->isLinked($source)) { $processor->process($source); } } }
/** * Sets message for a specific key, while preserving other keys * * @param SourceInterface $source * @param string $key * @param string $message * @param string $level */ protected function setMessage(SourceInterface $source, $key, $message, $level = LogLevel::ERROR) { $messages = $source->getMessages(); $messages[$key][$level] = $message; $source->setMessages($messages); }
/** * Remove sources * * @param SourceInterface $source */ public function removeSource(SourceInterface $source) { $this->sources->removeElement($source); }
/** * Adds source to the internal cache * * @param SourceInterface $source */ protected function cache(SourceInterface $source = null) { if (null === $source) { return; } // mark as visited $source->setDatetimeLastVisited(new \DateTime()); // cache by id if ($source->getId()) { $this->sources[$source->getId()] = $source; } // cache by origin if (null === ($feed = $source->getFeed()) || !$source->getOriginalId()) { return; } $hash = $this->getFeedHash($feed); $originalId = $source->getOriginalId(); $this->originSources[$hash][$originalId] = $source; }