/** * @param Domain\Game $game * * @return Dto\GameDetail */ private function mapGameToGameDetailDto(Domain\Game $game) { $builder = (new Dto\GameDetailBuilder())->id($game->getId())->name($game->getName())->state($game->getState()->getName()); foreach ($game->getPlayers() as $player) { $builder->addPlayer($player->getNumber(), $player->getStones()); } if ($game->getCurrentTurn() !== null) { $builder->turn($game->getCurrentTurn()->getNumber(), $game->getCurrentTurn()->getPlayerNumber()); } return $builder->get(); }
public function testPersistExistingGame() { $game = new Game('test game #1'); $this->assertNull($game->getId()); $this->gameRepository->persistGame($game); $id = $game->getId(); $game->setName('test game #2'); $this->gameRepository->persistGame($game); $this->assertNotNull($game->getId()); $this->assertSame($id, $game->getId(), 'game still has same id'); $this->assertSame('test game #2', $game->getName()); }