/**
  * {@inheritdoc}
  */
 public function map(ParameterBag $item)
 {
     $bag = new FeedItemBag($this->origin, $this->feed, call_user_func($this->originalIdCallback, $item), $item->all());
     $bag->setOriginalUrl(call_user_func($this->originalUrlCallback, $item));
     $bag->setDatetimeModified(call_user_func($this->modificationDateCallback, $item));
     return $bag;
 }
 /**
  * @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);
 }
 /**
  * @param Feed   $feed
  * @param string $name
  * @param string $feedType
  *
  * @return FeedItemBag
  */
 protected function getExpectedItemFixture(Feed $feed, $name, $feedType)
 {
     $refl = new \ReflectionClass(get_class($this));
     $phpFile = sprintf('%s/fixtures/%s/%s.php', dirname($refl->getFilename()), $feedType, $name);
     /** @var array $expected */
     $expected = (include $phpFile);
     $item = new FeedItemBag($feed->getOrigin(), $feed, $expected['id'], $expected['item']);
     if (isset($expected['url'])) {
         $item->setOriginalUrl($expected['url']);
     }
     if (isset($expected['date'])) {
         $item->setDatetimeModified($expected['date']);
     }
     return $item;
 }