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()); }
/** * @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]); }