Пример #1
0
 /**
  * @param PageEleveurBranch|null $branch
  * @return PageEleveur
  */
 private function fromBranch(PageEleveurBranch $branch = null)
 {
     $pageEleveur = new PageEleveur();
     $pageEleveur->setId($branch->getId());
     $pageEleveur->setOwner($branch->getOwner());
     $pageEleveur->setSlug($branch->getSlug());
     $pageEleveur->setHead($branch->getCommit()->getId());
     $pageEleveur->setNom($branch->getCommit()->getNom());
     $pageEleveur->setDescription($branch->getCommit()->getDescription());
     $pageEleveur->setEspeces($branch->getCommit()->getEspeces());
     $pageEleveur->setRaces($branch->getCommit()->getRaces());
     $pageEleveur->setLieu($branch->getCommit()->getLieu());
     /*
      * Le tri permet de retourner une PE dans le bon ordre même si
      * le commit a été fait dans un mauvais ordre.
      */
     $arrayCollection = $branch->getCommit()->getAnimaux()->toArray();
     usort($arrayCollection, function (PageAnimalBranch $a, PageAnimalBranch $b) {
         return $b->getCreatedAt()->getTimestamp() - $a->getCreatedAt()->getTimestamp();
     });
     $animaux = [];
     /** @var PageAnimalBranch $pageAnimalBranch */
     foreach ($arrayCollection as $pageAnimalBranch) {
         $animaux[] = PageAnimalService::fromBranch($pageAnimalBranch);
     }
     $pageEleveur->setAnimaux($animaux);
     $actualites = $branch->getCommit()->getActualites()->toArray();
     usort($actualites, function (Actualite $a, Actualite $b) {
         return $b->getDate()->getTimestamp() - $a->getDate()->getTimestamp();
     });
     $pageEleveur->setActualites($actualites);
     return $pageEleveur;
 }
Пример #2
0
 public function testCommit_FastForward()
 {
     // 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());
     $pageEleveur->setDescription('Une longue description');
     $pageEleveur->setEspeces('Chiens');
     $pageEleveur->setRaces('Chihuahua');
     $pageEleveur->setLieu('Hauts-de-Seine');
     $pageEleveur->setActualites([new Actualite('Nouvelle portée', new \DateTime())]);
     $this->entityManager->expects($this->once())->method('flush');
     $this->pageEleveurService->commit($user, $pageEleveur);
     //On vérifie qu'il y a bien un nouveau commit avec les bonnes infos
     $this->assertNotEquals($commit1->getId(), $pageEleveurBranch->getCommit()->getId());
     $this->assertEquals($commit1->getId(), $pageEleveurBranch->getCommit()->getParent()->getId());
     $this->assertEquals('Une longue description', $pageEleveurBranch->getCommit()->getDescription());
     $this->assertEquals('Chiens', $pageEleveurBranch->getCommit()->getEspeces());
     $this->assertEquals('Chihuahua', $pageEleveurBranch->getCommit()->getRaces());
     $this->assertEquals('Hauts-de-Seine', $pageEleveurBranch->getCommit()->getLieu());
     $this->assertEquals('Nouvelle portée', $pageEleveurBranch->getCommit()->getActualites()->first()->getContenu());
 }