/** * Player tries an answer * * @param PlayerId $playerId * @param Answer $move * @return GameResult */ private function playAnswer(PlayerId $playerId, Answer $move) { if ($errorEvent = $this->ensurePlayerCanPlay($playerId)) { $this->apply($errorEvent); return $errorEvent; } try { return $this->currentPlayerProposeAnswer($move->getText()); } catch (HangmanException $e) { $event = new HangmanPlayerProposedInvalidAnswerEvent($this->getId(), $playerId, $move); $this->apply($event); return $event; } }
/** * @test */ public function testAnswer() { $text = 'text'; $move = Answer::create($text); $this->assertEquals($text, $move->getText()); }
/** * @test */ public function testLeaveWhenOver() { $this->hangman->startGame($this->playerOneId); $this->hangman->play($this->playerOneId, Answer::create('ASS--KICKER')); $return = $this->hangman->leaveGame($this->playerOneId); $this->assertNull($return); }