/** * @param PackageInterface $package * * @return string */ protected function populateLead(PackageInterface $package) { return trim($package->getDescription() . implode('', array_map(function (ItemInterface $item) { $this->ensureTypeIsAllowed($item->getType()); return ' ' . $item->getDescription(); }, $package->getItems()->toArray()))); }
public function it_creates_article_from_package_and_sets_article_slug_from_package_slugline(FactoryInterface $factory, PackageInterface $package, Article $article, RouteInterface $route, RouteProviderInterface $routeProvider) { $factory->create()->willReturn($article); $item = new Item(); $item->setBody('some item body'); $item->setType('text'); $item->setDescription('item lead'); $package->getHeadline()->shouldBeCalled()->willReturn('item headline'); $package->getDescription()->shouldBeCalled()->willReturn('package lead'); $package->getBody()->shouldBeCalled()->willReturn('some package body'); $package->getItems()->shouldBeCalled()->willReturn(new ArrayCollection([$item])); $package->getLanguage()->shouldBeCalled()->willReturn('en'); $package->getMetadata()->shouldBeCalled()->willReturn(['some' => 'meta']); $package->getSlugline()->shouldBeCalled()->willReturn('slugline'); $article->setTitle('item headline')->shouldBeCalled(); $article->setBody('some package body some item body')->shouldBeCalled(); $article->setLead('package lead item lead')->shouldBeCalled(); $article->setLocale('en')->shouldBeCalled(); $article->setRoute($route)->shouldBeCalled(); $article->setMetadata(['some' => 'meta'])->shouldBeCalled(); $article->setSlug('slugline')->shouldBeCalled(); $routeProvider->getRouteForArticle($article)->willReturn($route); $this->createFromPackage($package)->shouldReturn($article); }