예제 #1
0
 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);
 }
예제 #2
0
 public function testClear()
 {
     $cardCollection = new CardCollection(TestDataProvider::getCardsArray());
     $this->assertNotSame(0, $cardCollection->count());
     $cardCollection->clear();
     $this->assertSame(0, $cardCollection->count());
 }
예제 #3
0
 public function testCheckEveryPlayersHasSituatedCards()
 {
     $player1 = TestDataProvider::getPlayer1();
     $player2 = TestDataProvider::getPlayer2();
     $card2 = TestDataProvider::getCard2();
     $card3 = TestDataProvider::getCard3();
     $gameTable = new GameTable(array($player1, $player2));
     $gameTable->getPlayerCards($player1)->append($card2);
     $gameTable->getPlayerCards($player2)->append($card3);
     $gameTable->checkEveryPlayersHasSituatedCards();
     $this->addToAssertionCount(1);
     $gameTable->getPlayerCards($player1)->clear();
     $expectedException = GameTableException::notAllPlayersPlacedCards();
     $this->expectException(get_class($expectedException));
     $this->expectExceptionMessage($expectedException->getMessage());
     $gameTable->checkEveryPlayersHasSituatedCards();
 }