public function testCreate_Success() { $user = new User(); $pageEleveur = $this->pageEleveurService->create('Les Chartreux de Tatouine', $user); $this->assertEquals($user, $pageEleveur->getOwner()); $this->assertEquals('les-chartreux-de-tatouine', $pageEleveur->getSlug()); $this->assertEquals('Les Chartreux de Tatouine', $pageEleveur->getNom()); }
/** * @Route("/", name="teaser_route") * @param Request $request * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response * @throws \Exception */ public function teaserAction(Request $request) { /** @var AnonymousToken $token */ $token = $this->tokenStorage->getToken(); /** @var User $user */ $user = $token->getUser(); if ($user == 'anon.') { return $this->templating->renderResponse('base.html.twig', [TwigNodeTemplateTreeSection::TEMPLATE_TREE_BRANCH => 'home/teaser']); } $pageEleveur = $this->pageEleveurService->findByOwner($user); $form = $this->formFactory->createNamedBuilder('creation-page-eleveur')->add('nom', TextType::class, ['label' => 'Nom de l\'élevage'])->add('save', SubmitType::class, array('label' => 'Créer ma page éleveur'))->getForm(); $form->handleRequest($request); if (!$form->isSubmitted() && $pageEleveur) { // un eleveur ne peux pas créer une 2eme page eleveur return $this->templating->renderResponse('base.html.twig', [TwigNodeTemplateTreeSection::TEMPLATE_TREE_BRANCH => 'home/eleveur', 'pageEleveur' => $pageEleveur]); } if ($form->isSubmitted() && $form->isValid()) { // traitement du formulaire de creation de page eleveur $nom = $form->getData()['nom']; try { $slug = $this->pageEleveurService->create($nom, $user)->getSlug(); return new RedirectResponse($this->router->generate('getPageEleveur_route', ['pageEleveurSlug' => $slug])); } catch (HistoryException $e) { $this->logger->error($e->getMessage(), ['exception' => $e, 'user' => $user, 'nom' => $nom]); switch ($e->getCode()) { case HistoryException::NOM_INVALIDE: return new Response('Le nom "' . $nom . '" n\'est pas valide.', Response::HTTP_NOT_ACCEPTABLE); case HistoryException::SLUG_DEJA_EXISTANT: return new Response('Une page éleveur du même nom existe déjà.', Response::HTTP_CONFLICT); case HistoryException::DEJA_OWNER: return new Response('Vous avez déjà une page éleveur.', Response::HTTP_BAD_REQUEST); } } } // home d'un user connecté mais qui n'a pas de page eleveur return $this->templating->renderResponse('base.html.twig', [TwigNodeTemplateTreeSection::TEMPLATE_TREE_BRANCH => 'home/creation-page-eleveur', 'creationPageEleveur' => $form->createView()]); }