@Test public void testIsCardPlayable() { Card card = cards.get(0); Ansage ansage = new Ansage(SpielModi.OBENABE); match.setAnsage(ansage); match.isCardPlayable(card); verify(jassRulesMock) .isCardPlayable(card, cards.subList(0, 9), new ArrayList<Card>(), ansage, true); }
@Test public void testSchiebeAfterAnsage() { match.setAnsage(new Ansage(CardSuit.CLUBS)); try { match.schiebe(); fail(); } catch (IllegalStateException e) { assertEquals("Ansage already set", e.getMessage()); } }
@Test public void testPlayCard() { Card card = cards.get(0); Ansage ansage = new Ansage(SpielModi.OBENABE); match.setAnsage(ansage); when(jassRulesMock.isCardPlayable( card, cards.subList(0, 9), new ArrayList<Card>(), ansage, true)) .thenReturn(true); match.playCard(card); }
@Before public void setup() { thirdPlayerStrategy = new ThirdPlayerStrategy(); cardsInHand = new ArrayList<Card>(); cardsOnTable = new ArrayList<PlayedCard>(); match = mock(MatchImpl.class); when(match.isCardPlayable(any(Card.class))).thenReturn(true); when(match.getCardsOnTable()).thenReturn(cardsOnTable); when(match.getCards(any(PlayerToken.class))).thenReturn(cardsInHand); when(match.getAnsage()).thenReturn(new Ansage(CardSuit.HEARTS)); }
@Test public void testGetCardsOnTable() { Card card = cards.get(0); Ansage ansage = new Ansage(SpielModi.OBENABE); match.setAnsage(ansage); when(jassRulesMock.isCardPlayable( card, cards.subList(0, 9), new ArrayList<Card>(), ansage, true)) .thenReturn(true); match.playCard(card); List<Card> cardsOnTable = match.getCardsOnTable(); assertEquals(1, cardsOnTable.size()); Card playedCard = cardsOnTable.get(0); assertEquals(card, playedCard); assertEquals(playerList.get(0), playedCard.getPlayer()); }
@Test public void testGetActivePlayer() { Card card = cards.get(0); Ansage ansage = new Ansage(SpielModi.OBENABE); match.setAnsage(ansage); when(jassRulesMock.isCardPlayable( any(Card.class), anyListOf(Card.class), anyListOf(Card.class), eq(ansage), anyBoolean())) .thenReturn(true); assertEquals(playerList.get(0), match.getActivePlayer()); match.playCard(card); assertEquals(playerList.get(1), match.getActivePlayer()); }
@Test public void testIsComplete() { Ansage ansage = new Ansage(SpielModi.OBENABE); Card winnerCard = mock(Card.class); when(winnerCard.getPlayer()).thenReturn(PlayerToken.PLAYER0); match.setAnsage(ansage); when(jassRulesMock.isCardPlayable( any(Card.class), anyListOf(Card.class), anyListOf(Card.class), eq(new Ansage(SpielModi.OBENABE)), anyBoolean())) .thenReturn(true); when(scoreUtilMock.getWinnerCard(anyListOf(Card.class), eq(ansage))).thenReturn(winnerCard); assertFalse(match.isComplete()); for (int i = 0; i < 36; i++) { if (i % 4 == 0 && i != 0) { match.collectCards(); } match.playCard(match.getCards(match.getActivePlayer()).get(0)); } assertTrue(match.isComplete()); }
@Test(expected = IllegalArgumentException.class) public void testPlayCardNotPlayable() { when(jassRulesMock.isCardPlayable( any(Card.class), anyListOf(Card.class), anyListOf(Card.class), any(Ansage.class), anyBoolean())) .thenReturn(false); match.playCard(cards.get(0)); }
@Test public void schiebe() { assertEquals(PlayerToken.PLAYER0, match.getActivePlayer()); match.schiebe(); assertTrue(match.isGeschoben()); assertEquals(PlayerToken.PLAYER2, match.getActivePlayer()); match.setAnsage(new Ansage(CardSuit.HEARTS)); assertEquals(PlayerToken.PLAYER0, match.getActivePlayer()); }
@Test public void testGetCardsFromPlayer1() { List<Card> cardsPlayer0 = match.getCards(playerList.get(1)); assertEquals(9, cardsPlayer0.size()); assertEquals(cards.subList(9, 18), cardsPlayer0); }
@Test(expected = IllegalArgumentException.class) public void testPlayCardWithNull() { match.playCard(null); }
@Test(expected = IllegalArgumentException.class) public void setAnsageTwice() { Ansage ansage = new Ansage(SpielModi.OBENABE); match.setAnsage(ansage); match.setAnsage(ansage); }
@Test public void setAndGetAnsage() { Ansage ansage = new Ansage(SpielModi.OBENABE); match.setAnsage(ansage); assertSame(ansage, match.getAnsage()); }
@Test public void getScore() { match.getScore(); verify(scoreUtilMock).calculateScore(eq(match), any(WysStore.class)); }