package com.faforever.client.leaderboard; import com.faforever.client.api.Ranked1v1Stats; import com.faforever.client.i18n.I18n; import com.faforever.client.task.CompletableTask; import com.faforever.client.task.TaskService; import org.apache.commons.lang3.RandomStringUtils; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; import static com.faforever.client.task.CompletableTask.Priority.HIGH; public class MockLeaderboardService implements LeaderboardService { @Resource TaskService taskService; @Resource I18n i18n; @Override public CompletionStage<List<Ranked1v1EntryBean>> getRanked1v1Entries() { return taskService.submitTask(new CompletableTask<List<Ranked1v1EntryBean>>(HIGH) { @Override protected List<Ranked1v1EntryBean> call() throws Exception { updateTitle(i18n.get("readLadderTask.title")); List<Ranked1v1EntryBean> list = new ArrayList<>(); for (int i = 1; i <= 10000; i++) { String name = RandomStringUtils.random(10); int rating = (int) (Math.random() * 2500); int gamecount = (int) (Math.random() * 10000); float winloss = (float) (Math.random() * 100); list.add(createLadderInfoBean(name, i, rating, gamecount, winloss)); } return list; } }).getFuture(); } @Override public CompletionStage<Ranked1v1Stats> getRanked1v1Stats() { return CompletableFuture.completedFuture(new Ranked1v1Stats()); } @Override public CompletionStage<Ranked1v1EntryBean> getEntryForPlayer(int playerId) { return CompletableFuture.completedFuture(createLadderInfoBean("Player #" + playerId, 111, 222, 333, 55.55f)); } private Ranked1v1EntryBean createLadderInfoBean(String name, int rank, int rating, int gamesPlayed, float winLossRatio) { Ranked1v1EntryBean ranked1v1EntryBean = new Ranked1v1EntryBean(); ranked1v1EntryBean.setUsername(name); ranked1v1EntryBean.setRank(rank); ranked1v1EntryBean.setRating(rating); ranked1v1EntryBean.setGamesPlayed(gamesPlayed); ranked1v1EntryBean.setWinLossRatio(winLossRatio); return ranked1v1EntryBean; } }