public function testCheckPlayerHasCard() { $player = new Player('player name'); $card = TestDataProvider::getCard2(); $player->getCards()->append($card); $player->checkPlayerHasCard($card); $this->addToAssertionCount(1); $player->getCards()->clear(); $expectedException = PlayerException::playerDoesNotHaveCard($player, $card); $this->expectException(get_class($expectedException)); $this->expectExceptionMessage($expectedException->getMessage()); $player->checkPlayerHasCard($card); }
/** * Giveing $card from $byPlayer to $toPlayer * Implemented games can override this metod by should call it for this action * * @param Card $card * @param Player $byPlayer * @param Player $toPlayer */ public function giveCardByPlayerToPlayer(Card $card, Player $byPlayer, Player $toPlayer) { $byPlayer->checkPlayerHasCard($card); $toPlayer->checkPlayerHasNotCard($card); Player::checkIfAreDiffrentPlayers($byPlayer, $toPlayer); $this->checkPlayerCanGiveCardToPlayer($byPlayer, $toPlayer, $card); $byPlayerCard = $byPlayer->getCards()->collect($card); $toPlayer->getCards()->append($byPlayerCard); }