/** * @param Player $player * @param TokenNumber $number * @param Dice $dice * * @throws DomainException If the token is not on the track or if the token is already finished. */ public function moveToken(Player $player, TokenNumber $number, Dice $dice) { if ($this->track->has($player, $number)) { $this->track->select($player, $number)->move($dice->value()); } elseif ($dice->equals(6)) { $this->takeFromYard($player, $number); } }
/** * @test * @expectedException \DomainException */ public function givenNonExistingToken_ThrowDomainException() { $this->track->select(Player::$GREEN, new TokenNumber(-1)); }