parent
64f8a4c738
commit
bd79d99394
@ -0,0 +1,14 @@
|
|||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
class CardTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
|
||||||
|
void constructorWorks() {
|
||||||
|
Card card = new Card(1, Card.Suit.CLUBS);
|
||||||
|
assertEquals(1, card.number);
|
||||||
|
assertEquals(Card.Suit.CLUBS, card.suit);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
class OutTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void printlnStoresString() {
|
||||||
|
Out.getOutput().clear();
|
||||||
|
Out.println();
|
||||||
|
assertEquals("\n", Out.get());
|
||||||
|
Out.println("Hello");
|
||||||
|
assertEquals("\nHello\n", Out.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void throwsException() {
|
||||||
|
assertThrows(IllegalStateException.class, Out::new);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
class PlayerTest {
|
||||||
|
Player player;
|
||||||
|
Pile pile;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
pile = Pile.createDeck(1);
|
||||||
|
player = new Player("0", pile);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void drawWithEmptyDrawPile() {
|
||||||
|
int n = player.drawPile.size();
|
||||||
|
player.discardPile.addAll(player.drawPile.take(n));
|
||||||
|
assertEquals(0, player.drawPile.size());
|
||||||
|
assertEquals(n, player.discardPile.size());
|
||||||
|
player.draw();
|
||||||
|
assertEquals(n - 1, player.drawPile.size());
|
||||||
|
assertEquals(0, player.discardPile.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void draw() {
|
||||||
|
Card card = player.draw();
|
||||||
|
assertEquals(1, card.number);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void cardsCount() {
|
||||||
|
assertEquals(4, player.cardsCount());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,73 @@
|
|||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
class PlayersTest {
|
||||||
|
Players players = new Players();
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
Out.getOutput().clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void playForZeroPlayers() {
|
||||||
|
players.play();
|
||||||
|
assertEquals("", Out.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void playForOnePlayerMakesHimAWinner() {
|
||||||
|
Player player = new Player("0", Pile.createDeck(1));
|
||||||
|
players.add(player);
|
||||||
|
players.play();
|
||||||
|
assertEquals("Player 0 wins the game!\n", Out.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void playWithSameCardsHasNoWinner() {
|
||||||
|
Player player = new Player("0", Pile.createDeck(1));
|
||||||
|
players.add(player);
|
||||||
|
player = new Player("1", Pile.createDeck(1));
|
||||||
|
players.add(player);
|
||||||
|
players.play();
|
||||||
|
assertTrue(Out.get().contains("No winner in this round"));
|
||||||
|
assertTrue(Out.get().contains("No winner in the game!"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void playWithTwoPlayers() {
|
||||||
|
Pile deck = new Pile();
|
||||||
|
deck.add(new Card(1, Card.Suit.CLUBS));
|
||||||
|
deck.add(new Card(2, Card.Suit.DIAMONDS));
|
||||||
|
deck.add(new Card(3, Card.Suit.HEARTS));
|
||||||
|
deck.add(new Card(4, Card.Suit.SPADES));
|
||||||
|
Player player = new Player("0", deck.take(2));
|
||||||
|
players.add(player);
|
||||||
|
player = new Player("1", deck.take(2));
|
||||||
|
players.add(player);
|
||||||
|
players.play();
|
||||||
|
assertTrue(Out.get().contains("Player 1 wins this round"));
|
||||||
|
assertTrue(Out.get().contains("Player 1 wins the game!"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void playerOneWinningFourCards() {
|
||||||
|
Pile deck = new Pile();
|
||||||
|
deck.add(new Card(1, Card.Suit.CLUBS));
|
||||||
|
deck.add(new Card(2, Card.Suit.DIAMONDS));
|
||||||
|
deck.add(new Card(1, Card.Suit.HEARTS));
|
||||||
|
deck.add(new Card(4, Card.Suit.SPADES));
|
||||||
|
Player player = new Player("0", deck.take(2));
|
||||||
|
players.add(player);
|
||||||
|
player = new Player("1", deck.take(2));
|
||||||
|
players.add(player);
|
||||||
|
players.play();
|
||||||
|
assertTrue(Out.get().contains("No winner in this round"));
|
||||||
|
assertTrue(Out.get().contains("Player 1 wins this round"));
|
||||||
|
assertTrue(Out.get().contains("Player 1 wins the game!"));
|
||||||
|
assertEquals("1", players.get(0).name);
|
||||||
|
assertEquals(4, players.get(0).cardsCount());
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in new issue