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