|
|
|
@ -4,25 +4,33 @@ import org.junit.jupiter.api.Test;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
|
|
|
|
|
|
|
|
class PlayersTest {
|
|
|
|
class PlayersTest {
|
|
|
|
|
|
|
|
Out subscriber = new Out();
|
|
|
|
|
|
|
|
|
|
|
|
Players players = new Players();
|
|
|
|
Players players = new Players();
|
|
|
|
|
|
|
|
|
|
|
|
@BeforeEach
|
|
|
|
@BeforeEach
|
|
|
|
void setUp() {
|
|
|
|
void setUp() {
|
|
|
|
Out.getOutput().clear();
|
|
|
|
subscriber.getOutput().clear();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
void playForZeroPlayers() {
|
|
|
|
void playForZeroPlayers() {
|
|
|
|
|
|
|
|
Event.subscribe("win", subscriber);
|
|
|
|
|
|
|
|
Event.subscribe("round", subscriber);
|
|
|
|
|
|
|
|
Event.subscribe("roundWin", subscriber);
|
|
|
|
players.play();
|
|
|
|
players.play();
|
|
|
|
assertEquals("", Out.get());
|
|
|
|
assertEquals("", subscriber.toString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
void playForOnePlayerMakesHimAWinner() {
|
|
|
|
void playForOnePlayerMakesHimAWinner() {
|
|
|
|
Player player = new Player("0", Pile.createDeck(1));
|
|
|
|
Player player = new Player("0", Pile.createDeck(1));
|
|
|
|
players.add(player);
|
|
|
|
players.add(player);
|
|
|
|
|
|
|
|
Event.subscribe("win", subscriber);
|
|
|
|
|
|
|
|
Event.subscribe("round", subscriber);
|
|
|
|
|
|
|
|
Event.subscribe("roundWin", subscriber);
|
|
|
|
players.play();
|
|
|
|
players.play();
|
|
|
|
assertEquals("Player 0 wins the game!\n", Out.get());
|
|
|
|
assertEquals("Player 0 wins the game!\n", subscriber.toString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
@ -31,9 +39,12 @@ class PlayersTest {
|
|
|
|
players.add(player);
|
|
|
|
players.add(player);
|
|
|
|
player = new Player("1", Pile.createDeck(1));
|
|
|
|
player = new Player("1", Pile.createDeck(1));
|
|
|
|
players.add(player);
|
|
|
|
players.add(player);
|
|
|
|
|
|
|
|
Event.subscribe("win", subscriber);
|
|
|
|
|
|
|
|
Event.subscribe("round", subscriber);
|
|
|
|
|
|
|
|
Event.subscribe("roundWin", subscriber);
|
|
|
|
players.play();
|
|
|
|
players.play();
|
|
|
|
assertTrue(Out.get().contains("No winner in this round"));
|
|
|
|
assertTrue(subscriber.toString().contains("No winner in this round"));
|
|
|
|
assertTrue(Out.get().contains("No winner in the game!"));
|
|
|
|
assertTrue(subscriber.toString().contains("No winner in the game!"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
@ -47,9 +58,12 @@ class PlayersTest {
|
|
|
|
players.add(player);
|
|
|
|
players.add(player);
|
|
|
|
player = new Player("1", deck.take(2));
|
|
|
|
player = new Player("1", deck.take(2));
|
|
|
|
players.add(player);
|
|
|
|
players.add(player);
|
|
|
|
|
|
|
|
Event.subscribe("win", subscriber);
|
|
|
|
|
|
|
|
Event.subscribe("round", subscriber);
|
|
|
|
|
|
|
|
Event.subscribe("roundWin", subscriber);
|
|
|
|
players.play();
|
|
|
|
players.play();
|
|
|
|
assertTrue(Out.get().contains("Player 1 wins this round"));
|
|
|
|
assertTrue(subscriber.toString().contains("Player 1 wins this round"));
|
|
|
|
assertTrue(Out.get().contains("Player 1 wins the game!"));
|
|
|
|
assertTrue(subscriber.toString().contains("Player 1 wins the game!"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
@ -63,10 +77,13 @@ class PlayersTest {
|
|
|
|
players.add(player);
|
|
|
|
players.add(player);
|
|
|
|
player = new Player("1", deck.take(2));
|
|
|
|
player = new Player("1", deck.take(2));
|
|
|
|
players.add(player);
|
|
|
|
players.add(player);
|
|
|
|
|
|
|
|
Event.subscribe("win", subscriber);
|
|
|
|
|
|
|
|
Event.subscribe("round", subscriber);
|
|
|
|
|
|
|
|
Event.subscribe("roundWin", subscriber);
|
|
|
|
players.play();
|
|
|
|
players.play();
|
|
|
|
assertTrue(Out.get().contains("No winner in this round"));
|
|
|
|
assertTrue(subscriber.toString().contains("No winner in this round"));
|
|
|
|
assertTrue(Out.get().contains("Player 1 wins this round"));
|
|
|
|
assertTrue(subscriber.toString().contains("Player 1 wins this round"));
|
|
|
|
assertTrue(Out.get().contains("Player 1 wins the game!"));
|
|
|
|
assertTrue(subscriber.toString().contains("Player 1 wins the game!"));
|
|
|
|
assertEquals("1", players.get(0).name);
|
|
|
|
assertEquals("1", players.get(0).name);
|
|
|
|
assertEquals(4, players.get(0).cardsCount());
|
|
|
|
assertEquals(4, players.get(0).cardsCount());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|