コード例 #1
0
 public function testMappingBranchToModel()
 {
     // Mock d'une page eleveur en base de données
     $user = new User();
     $user->setId(1);
     $pageEleveurBranch = new PageEleveurBranch();
     $pageEleveurBranch->setId(1);
     $pageEleveurBranch->setOwner($user);
     $this->pageEleveurBranchRepository->method('findBySlug')->withAnyParameters()->willReturn($pageEleveurBranch);
     $pageAnimal = new PageAnimalBranch();
     $photo = new Photo();
     $photo->setNom('portrait');
     $pageAnimal->setCommit(new PageAnimalCommit(null, 'bobi', null, '', PageAnimal::DISPONIBLE, PageAnimal::MALE, [$photo]));
     $commit = new PageEleveurCommit(null, 'Tatouine', 'Plein de chartreux', 'Chats', 'Chartreux', 'Roubaix', [$pageAnimal], [new Actualite('Nouvelle portée', new \DateTime())]);
     $pageEleveurBranch->setCommit($commit);
     $this->pageEleveurCommitRepository->method('find')->with($commit->getId())->willReturn($commit);
     // requete cliente par le slug
     $pageEleveur = $this->pageEleveurService->findBySlug('');
     // l'objet PageEleveur est bien rempli
     $this->assertEquals('Tatouine', $pageEleveur->getNom());
     $this->assertEquals('Plein de chartreux', $pageEleveur->getDescription());
     $this->assertEquals('Chats', $pageEleveur->getEspeces());
     $this->assertEquals('Chartreux', $pageEleveur->getRaces());
     $this->assertEquals('Roubaix', $pageEleveur->getLieu());
     $this->assertEquals('Nouvelle portée', $pageEleveur->getActualites()[0]->getContenu());
     $this->assertEquals('portrait', $pageEleveur->getAnimaux()[0]->getPhotos()[0]->getNom());
 }
コード例 #2
0
 /**
  * @Route("/elevage/{pageEleveurSlug}", name="getPageEleveur_route")
  * @Method("GET")
  *
  * @param $pageEleveurSlug
  * @param Request $request
  * @return RedirectResponse|Response
  */
 public function getAction($pageEleveurSlug, Request $request)
 {
     $pageEleveur = $this->pageEleveurService->findBySlug($pageEleveurSlug);
     if (!$pageEleveur) {
         throw new NotFoundHttpException(null, null);
     }
     /** @var AnonymousToken $token */
     $token = $this->tokenStorage->getToken();
     /** @var User $user */
     $user = $token->getUser();
     $isOwner = $user !== 'anon.' && $pageEleveur->getOwner()->getId() === $user->getId();
     $isPreview = $request->query->has('preview');
     if ($isPreview && !$isOwner) {
         $this->logger->notice('Requete visiteur sur page eleveur en mode preview', ['user' => $user, 'pageEleveurSlug' => $pageEleveurSlug, 'pageEleveurId' => $pageEleveur->getId()]);
         return new RedirectResponse($this->router->generate('getPageEleveur_route', ['pageEleveurSlug' => $pageEleveurSlug]));
     }
     return $this->templating->renderResponse('base.html.twig', [TwigNodeTemplateTreeSection::TEMPLATE_TREE_BRANCH => 'editable/page-eleveur', 'pageEleveur' => $pageEleveur, 'isEditable' => $isOwner && !$isPreview]);
 }