package game.cash; import static org.junit.Assert.assertEquals; import game.AbstractGameDescription; import game.GameRunner; import game.PublicGameInfo; import game.cash.CashGameTableSeater; import org.junit.Test; import bots.BotRepository; public class CashGameTableSeaterTest { @Test public void testSeatPermutations() { AbstractGameDescription testDescription = new MockGameDescription(); testDescription.setBotNames(new String[]{"DemoBot/AlwaysCallBot", "DemoBot/AlwaysCallBot", "DemoBot/AlwaysCallBot", "DemoBot/AlwaysCallBot"}); testDescription.setInGameNames(new String[]{"1", "2", "3", "4"}); CashGameTableSeater seater = new CashGameTableSeater(new BotRepository(), true); PublicGameInfo[] gameInfos = seater.createTables(testDescription); // 4 permutations for 4 players assertEquals(4, gameInfos.length); testPermutation(gameInfos, 0, "1", "2", "3", "4"); testPermutation(gameInfos, 1, "2", "4", "1", "3"); testPermutation(gameInfos, 2, "3", "1", "4", "2"); testPermutation(gameInfos, 3, "4", "3", "2", "1"); } private void testPermutation(PublicGameInfo[] publicGameInfos, int permutation, String... botNames) { for (int seat = 0; seat < botNames.length; seat++) { assertEquals("testing seat #" + seat + " in permutation #" + permutation, botNames[seat], publicGameInfos[permutation].getPlayerName(seat)); } } class MockGameDescription extends AbstractGameDescription { @Override public GameRunner createGameRunner() { return null; } } }