/** * @param Board $board * @param string $redPlayerName * @param string $yellowPlayerName * @param DateTime $date * @return integer */ public function archive(Board $board, $redPlayerName = '', $yellowPlayerName = '', DateTime $date = null) { $archivedGame = new ArchivedGame($board, $redPlayerName, $yellowPlayerName, $date); $this->archive[] = $archivedGame; $id = count($this->archive); $archivedGame->setId($id); return $id; }
function it_can_archive_a_game(Board $board, DateTime $date) { $id = $this->archive($board, 'Jim', 'Bob', $date); $id->shouldBe(1); $archivedGame = new ArchivedGame($board->getWrappedObject(), 'Jim', 'Bob', $date->getWrappedObject()); $archivedGame->setId(1); $this->getArchive()->shouldBeLike([$archivedGame]); $this->getById(1)->shouldBeLike($archivedGame); }