108 lines
2.6 KiB
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());
|
|
}
|
|
}
|