コード例 #1
0
 public function testHasNomAndPrenomAndElection()
 {
     $echeance = new Echeance(new \DateTime(), Echeance::CANTONALES);
     $circonscription = new TerritoireMock();
     $election = new ElectionMock($echeance, $circonscription);
     $personneCandidate = new PersonneCandidate($election, 'FG', 'Naël', 'Ferret');
     $this->assertEquals('FG', $personneCandidate->getNuance());
     $this->assertEquals('Naël Ferret', (string) $personneCandidate);
     $this->assertEquals($election, $personneCandidate->getElection());
 }
コード例 #2
0
 /**
  * Lit une partie de CSV concernant un candidat.
  *
  * @param string $line La partie de ligne CSV
  *
  * @return Candidat L'entite Candidat
  */
 private function updateCandidat($line, $election, $commune)
 {
     $candidatInfos = explode(';', $line);
     for ($i = 0; $i < 3; $i++) {
         if (!array_key_exists($i, $candidatInfos)) {
             return false;
         }
     }
     $nuance = $this->nuanceAvant ? $candidatInfos[0] : $candidatInfos[1];
     $nom = $this->nuanceAvant ? $candidatInfos[1] : $candidatInfos[0];
     if ('liste' === $this->electionType) {
         $candidat = new ListeCandidate($election, $nuance, $nom);
     } elseif ('uninominale' === $this->electionType) {
         $candidat = new PersonneCandidate($election, $nuance, null, $nom);
     }
     $slice = array_values(array_filter($election->getCandidats(), function ($c) use($candidat) {
         return $candidat->getNom() === $c->getNom();
     }));
     if (0 === count($slice)) {
         $election->addCandidat($candidat);
     } else {
         $candidat = $slice[0];
     }
     $election->setVoixCandidat($candidatInfos[2], $candidat, $commune);
 }