/**
  * @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_should_transform_package_to_article(PackageInterface $package, ArticleFactoryInterface $articleFactory, ArticleInterface $article)
 {
     $package->getHeadline()->willReturn('headline');
     $package->getSlugline()->willReturn('slug');
     $package->getLanguage()->willReturn('en');
     $article->getTitle()->willReturn('headline');
     $article->getSlug()->willReturn('slug');
     $article->getLocale()->willReturn('en');
     $articleFactory->createFromPackage($package)->willReturn($article);
     $this->transform($package)->shouldReturn($article);
 }
 public function it_should_transform_json_to_package(PackageInterface $package, SerializerInterface $serializer, ValidatorInterface $validator)
 {
     $json = '{
         "language": "en",
         "slugline": "slugline",
         "headline": "headline"
     }';
     $package->getHeadline()->willReturn('headline');
     $package->getSlugline()->willReturn('slugline');
     $package->getLanguage()->willReturn('en');
     $items = new ArrayCollection();
     $package->getItems()->willReturn($items);
     $validator->isValid($json)->willReturn(true);
     $serializer->deserialize($json, Argument::exact(Package::class), Argument::exact('json'))->willReturn($package);
     $this->transform($json)->shouldReturn($package);
 }
Ejemplo n.º 4
0
 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);
 }