@Test public void shouldReturnOneTableWhenOnlyOneMatchesAndClientAndTemplateAreSpecified() throws Exception { RandomTableGenerator generator = new RandomTableGenerator(); generator.setGameTypes("BLACKJACK", "HISSTERIA", "ROULETTE"); Set<Table> nonMatching = generator.generateTables(100); generator.setGameTypes(gameType); generator.setTemplateNames(toMap(gameType, variation)); generator.setClients(toMap(gameType, clientId)); generator.setFulls(false); generator.setShowInLobbys(true); generator.setAvailableForJoinings(true); generator.setStatii(TableStatus.open); GameStatus gameStatus = mock(GameStatus.class); when(gameRepository.getGameRules(anyString())).thenReturn(gameRules); when(gameRules.getJoiningDesirability(gameStatus)).thenReturn(45); Set<Table> matching = generator.generateTables(1); Table generatedTable = matching.iterator().next(); generatedTable.setTableId(BigDecimal.valueOf(67)); generatedTable.setCurrentGame(gameStatus); Set<Table> all = new HashSet<Table>(nonMatching); all.addAll(matching); gigaSpace.writeMultiple(all.toArray(new Table[all.size()])); assertEquals(101, gigaSpace.count(new Table())); Collection<TableSearchResult> found = tableSearchService.findTables( BigDecimal.TEN, new TableSearchCriteria(gameType, variation, clientId, Collections.<String>emptySet())); assertEquals(1, found.size()); TableSearchResult table = found.iterator().next(); assertEquals(BigDecimal.valueOf(67), table.getTableId()); assertEquals(10, table.getSpareSeats()); assertEquals(45, table.getJoiningDesirability()); }
@Test public void shouldReturnTableWhenPlayerIsNotPlayingAtOnlyTable() throws Exception { RandomTableGenerator generator = new RandomTableGenerator(); generator.setGameTypes(gameType); generator.setTemplateNames(toMap(gameType, variation)); generator.setClients(toMap(gameType, clientId)); generator.setFulls(false); generator.setShowInLobbys(true); generator.setAvailableForJoinings(true); generator.setStatii(TableStatus.open); Set<Table> generated = generator.generateTables(1); GameStatus gameStatus = mock(GameStatus.class); when(gameRepository.getGameRules(anyString())).thenReturn(gameRules); when(gameRules.getJoiningDesirability(gameStatus)).thenReturn(45); Table first = generated.iterator().next(); first.addPlayerToTable(new PlayerInformation(BigDecimal.ONE)); first.setTableId(BigDecimal.valueOf(67)); first.setCurrentGame(gameStatus); gigaSpace.writeMultiple(generated.toArray(new Table[generated.size()])); Collection<TableSearchResult> found = tableSearchService.findTables( BigDecimal.TEN, new TableSearchCriteria(gameType, variation, clientId, Collections.<String>emptySet())); assertEquals(1, found.size()); TableSearchResult table = found.iterator().next(); assertEquals(BigDecimal.valueOf(67), table.getTableId()); assertEquals(10, table.getSpareSeats()); assertEquals(10, table.getMaxSeats()); assertEquals(45, table.getJoiningDesirability()); }