/** * @param PackageInterface $package * * @return ArticleInterface */ protected function hydrateArticle(PackageInterface $package) { /** @var ArticleInterface $article */ $article = $this->create(); $article->setBody($this->populateBody($package)); $article->setTitle($package->getHeadline()); if (null !== $package->getSlugline()) { $article->setSlug($package->getSlugline()); } $article->setLocale($package->getLanguage()); $article->setLead($this->populateLead($package)); $article->setMetadata($package->getMetadata()); // assign default route $article->setRoute($this->routeProvider->getRouteForArticle($article)); return $article; }
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); }