public function testParseModificationExceptionWithEvent()
 {
     $modifier = new CallbackTransformer(function (ParameterBag $item) {
         throw new ModificationException();
     });
     $item = $this->createItem();
     $parser = new DefaultParser();
     $parser->addModifier($modifier, 1, false);
     $parser->getEventDispatcher()->addListener(FeedEvents::ITEM_MODIFICATION_FAILED, function (FailedItemModificationEvent $event) {
         $event->setContinue(true);
     });
     $parser->parse($item);
     $this->assertInstanceOf(ScrapedItemBag::class, $item);
 }
Esempio n. 2
0
 /**
  * @inheritdoc
  */
 public function build(ParserTypeInterface $type, array $options)
 {
     $resolver = $this->getOptionsResolver($type);
     $type->build($this, $resolver->resolve($options));
     $parser = new DefaultParser($this->eventDispatcher);
     foreach ($this->modifiers as $position => list($modifier, $continue)) {
         $parser->addModifier($modifier, $position, $continue);
     }
     return $parser;
 }