/**
  * @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);
 }
Пример #4
0
 /**
  * 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;
 }