/** * @param Fixture[] $fixtures * * @return Scorer[] */ public function getScorer($fixtures) { $scorerManager = new ScorerManager(); foreach ($fixtures as $fixture) { foreach ($fixture->getGoalEvents() as $event) { $scorer = $scorerManager->addAndGetByPlayer($event->getPlayer()); $scorer->incrementGoals(); } } return $scorerManager->getAllOrdered(); }
public function testAddAndGetByPlayer() { $scorerManager = new ScorerManager(); $player1 = new Player(); $player1->setId(1); $scorer = $scorerManager->addAndGetByPlayer($player1); $this->assertEquals($player1, $scorer->getPlayer()); $player2 = new Player(); $player2->setId(2); $scorer = $scorerManager->addAndGetByPlayer($player2); $this->assertEquals($player2, $scorer->getPlayer()); $scorer = $scorerManager->addAndGetByPlayer($player1); $this->assertEquals($player1, $scorer->getPlayer()); }