/** * @Route("/commit-page-eleveur", name="commitPageEleveur_route") * @Method("POST") * @param Request $request * @return Response * @throws HistoryException */ public function commitAction(Request $request) { /** @var PageEleveur $pageEleveur */ $pageEleveur = $this->serializer->deserialize($request->getContent(), PageEleveur::class, 'json'); /** @var AnonymousToken $token */ $token = $this->tokenStorage->getToken(); /** @var User $user */ $user = $token->getUser(); if ($user === 'anon.') { return new RedirectResponse($this->router->generate('fos_user_security_login')); } try { $pageEleveur = $this->pageEleveurService->commit($user, $pageEleveur); return new Response(self::jsonPageEleveur($pageEleveur)); } catch (HistoryException $e) { return $this->createErrorResponse($e, $user, $pageEleveur); } }
public function testOrdre_Actualite() { // 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('find')->withAnyParameters()->willReturn($pageEleveurBranch); $commit1 = $this->newCommit(1); $pageEleveurBranch->setCommit($commit1); $this->pageEleveurCommitRepository->method('find')->withAnyParameters()->willReturn($commit1); //Simulation d'une requete de commit $pageEleveur = new PageEleveur(); $pageEleveur->setId($pageEleveurBranch->getId()); $pageEleveur->setHead($commit1->getId()); // Les actu sont commités dans le mauvais ordre $pageEleveur->setActualites([new Actualite('actu 1', new \DateTime()), new Actualite('actu 2', (new \DateTime())->add(new \DateInterval('P2D')))]); $pageEleveur = $this->pageEleveurService->commit($user, $pageEleveur); // commit() doit retourner les actu dans le bon ordre $this->assertEquals('actu 2', $pageEleveur->getActualites()[0]->getContenu()); $this->assertEquals('actu 1', $pageEleveur->getActualites()[1]->getContenu()); }