Files
MauMau-CLI/src/test/java/mau/mau/CardHandlerTest.java

108 lines
2.6 KiB
Java

package mau.mau;
import mau.mau.players.Bot;
import mau.mau.players.Player;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CardHandlerTest {
private CardHandler sut;
private TurnTable turnTable;
private List<Player> players;
private Dealer dealer;
private Bot bot1, bot2, bot3;
@BeforeEach
public void setUp() {
//Arrange
dealer = new Dealer(new Deck());
sut = new CardHandler();
players = new ArrayList<>();
turnTable = new TurnTable(players);
bot1 = new Bot(dealer);
bot2 = new Bot(dealer);
bot3 = new Bot(dealer);
}
@Test
public void doesAceOfSpadesReverseTheFlowTest() {
//Arrange
Card card = new Card(TYPENUM.SPADES, VALUENUM.ACE);
players.add(bot1);
players.add(bot2);
//Act
sut.handleCard(card, turnTable);
//Assert
assertEquals(bot1, turnTable.getCurrentPlayer());
assertEquals(-1, turnTable.getDirection());
}
@Test
public void doesTwoOfSpadesGiveTheNextPlayerTwoCardsTest() {
//Arrange
var hand = new ArrayList<Card>();
Card card = new Card(TYPENUM.SPADES, VALUENUM.TWO);
players.add(bot1);
players.add(bot2);
bot2.setHand(hand);
//Act
sut.handleCard(card, turnTable);
//Assert
assertEquals(2, bot2.getHand().size());
}
@Test
public void isSevenStickyAndDoesNotChangeThePlayerTest() {
//Arrange
Card card = new Card(TYPENUM.SPADES, VALUENUM.SEVEN);
players.add(bot1);
players.add(bot2);
//Act
sut.handleCard(card, turnTable);
//Assert
assertEquals(bot1, turnTable.getCurrentPlayer());
}
@Test
public void doesEightSkipTheNextPlayerTest() {
//Arrange
Card card = new Card(TYPENUM.SPADES, VALUENUM.EIGHT);
players.add(bot1);
players.add(bot2);
players.add(bot3);
//Act
sut.handleCard(card, turnTable);
//Assert
assertEquals(bot3, turnTable.getCurrentPlayer());
}
@Test
public void isKingKinkyAndDoesNotChangeThePlayerTest() {
//Arrange
Card card = new Card(TYPENUM.SPADES, VALUENUM.KING);
players.add(bot1);
players.add(bot2);
//Act
sut.handleCard(card, turnTable);
//Assert
assertEquals(bot1, turnTable.getCurrentPlayer());
}
}