package com.flexpoker.table.command.aggregate.pot;
import static com.flexpoker.table.command.aggregate.pot.PotTestUtils.createBasicPotHandler;
import static com.flexpoker.table.command.aggregate.pot.PotTestUtils.createSetOfPlayers;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.UUID;
import org.junit.Test;
import com.flexpoker.exception.FlexPokerException;
public class BasicPotHandlerTest {
@Test
public void testTwoPlayersRequiredToShowCardsAndChipsWon() {
UUID player1 = UUID.randomUUID();
UUID player2 = UUID.randomUUID();
UUID potId1 = UUID.randomUUID();
UUID potId2 = UUID.randomUUID();
Set<UUID> playersInvolved = createSetOfPlayers(player1, player2);
PotHandler potHandler = createBasicPotHandler(player1, player2);
potHandler.addNewPot(potId1, playersInvolved);
potHandler.addNewPot(potId2, playersInvolved);
potHandler.addToPot(potId1, 20);
potHandler.addToPot(potId2, 10);
Set<UUID> playersRequriedToShowCards = potHandler
.fetchPlayersRequriedToShowCards(playersInvolved);
Map<UUID, Integer> fetchChipsWon = potHandler
.fetchChipsWon(playersInvolved);
assertTrue(playersRequriedToShowCards.contains(player1));
assertFalse(playersRequriedToShowCards.contains(player2));
assertEquals(30, fetchChipsWon.get(player1).intValue());
}
@Test(expected = IllegalArgumentException.class)
public void testAddNewPotWithPlayersThatDontExist() {
UUID player1 = UUID.randomUUID();
UUID player2 = UUID.randomUUID();
UUID player3 = UUID.randomUUID();
PotHandler potHandler = createBasicPotHandler(player1, player2);
UUID potId = UUID.randomUUID();
potHandler.addNewPot(potId, createSetOfPlayers(player3));
}
@Test
public void testClosePot() {
UUID player1 = UUID.randomUUID();
UUID player2 = UUID.randomUUID();
PotHandler potHandler = createBasicPotHandler(player1, player2);
UUID potId = UUID.randomUUID();
potHandler.addNewPot(potId, createSetOfPlayers(player1, player2));
potHandler.closePot(potId);
}
@Test(expected = NoSuchElementException.class)
public void testClosePotThatDoesntExist() {
PotHandler potHandler = createBasicPotHandler(UUID.randomUUID(),
UUID.randomUUID());
potHandler.closePot(UUID.randomUUID());
}
@Test(expected = FlexPokerException.class)
public void testAddChipsToClosedPot() {
UUID player1 = UUID.randomUUID();
UUID player2 = UUID.randomUUID();
PotHandler potHandler = createBasicPotHandler(player1, player2);
UUID potId = UUID.randomUUID();
potHandler.addNewPot(potId, createSetOfPlayers(player1, player2));
potHandler.closePot(potId);
potHandler.addToPot(potId, 10);
}
}