Esempio n. 1
0
 /**
  * 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;
     }
 }
Esempio n. 2
0
 /**
  * @test
  */
 public function testAnswer()
 {
     $text = 'text';
     $move = Answer::create($text);
     $this->assertEquals($text, $move->getText());
 }
Esempio n. 3
0
 /**
  * @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);
 }