/** * @param PackageInterface $package * * @return string */ protected function populateBody(PackageInterface $package) { return $package->getBody() . ' ' . implode('', array_map(function (ItemInterface $item) { $this->ensureTypeIsAllowed($item->getType()); return $item->getBody(); }, $package->getItems()->toArray())); }
public function it_throws_an_exception_when_item_type_not_allowed(FactoryInterface $factory, PackageInterface $package, Article $article, RouteInterface $route) { $factory->create()->willReturn($article); $item = new Item(); $item->setBody('some item body'); $item->setType('fake'); $package->getHeadline()->shouldNotBeCalled(); $package->getBody()->shouldBeCalled()->willReturn('some package body'); $package->getItems()->shouldBeCalled()->willReturn(new ArrayCollection([$item])); $package->getLanguage()->shouldNotBeCalled(); $package->getMetadata()->shouldNotBeCalled(); $article->setTitle('item headline')->shouldNotBeCalled(); $article->setBody('some package body some item body')->shouldNotBeCalled(); $article->setLocale('en')->shouldNotBeCalled(); $article->setRoute($route)->shouldNotBeCalled(); $article->setMetadata(['some' => 'meta'])->shouldNotBeCalled(); $this->shouldThrow(\InvalidArgumentException::class)->duringCreateFromPackage($package); }