package com.cwa.ladder.selector; import com.cwa.ladder.Ladder; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Map; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import org.junit.Before; import org.junit.Test; public class QijiUserSelectorTest { private Ladder ladder; private UserSelector selector; @Before public void initLadderWith2kUsers() { selector = new QijiUserSelector(); // 天梯中有2000个玩家,排名从1到512 ladder = new Ladder(1); ladder.setUidList(new ArrayList<Integer>()); for (int i = 0; i < 2000; i++) { ladder.getUidList().add(i + 1); } } @Test public void challengerIsNotInLadder() { assertThat(selector.select(ladder, 2001, 5), is(Collections.EMPTY_MAP)); } @Test public void challengerIsNo1() { assertThat(selector.select(ladder, 1, 5), is(Collections.EMPTY_MAP)); } @Test public void challengerIsNo2() { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 1); assertThat(selector.select(ladder, 2, 5), is(map)); } @Test public void challengerIsNo3() { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 1); map.put(2, 2); assertThat(selector.select(ladder, 3, 5), is(map)); } @Test public void challengerIsNo5() { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 1); map.put(2, 2); map.put(3, 3); map.put(4, 4); assertThat(selector.select(ladder, 5, 5), is(map)); } @Test public void challengerIsNo6() { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 1); map.put(2, 2); map.put(3, 3); map.put(4, 4); map.put(5, 5); assertThat(selector.select(ladder, 6, 5), is(map)); } @Test public void challengerIsNo7() { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(2, 2); map.put(3, 3); map.put(4, 4); map.put(5, 5); map.put(6, 6); assertThat(selector.select(ladder, 7, 5), is(map)); } @Test public void challengerIsNo100() { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(95, 95); map.put(96, 96); map.put(97, 97); map.put(98, 98); map.put(99, 99); assertThat(selector.select(ladder, 100, 5), is(map)); } @Test public void challengerIsNo101() { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(95, 95); map.put(96, 96); map.put(97, 97); map.put(98, 98); map.put(99, 99); assertThat(selector.select(ladder, 100, 5), is(map)); } @Test public void challengerIsNo200() { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(194, 194); map.put(195, 195); map.put(196, 196); map.put(197, 197); map.put(198, 198); assertThat(selector.select(ladder, 200, 5), is(map)); } @Test public void challengerIsNo256() { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(249, 249); map.put(250, 250); map.put(251, 251); map.put(252, 252); map.put(253, 253); assertThat(selector.select(ladder, 256, 5), is(map)); } @Test public void challengerIsNo2000() { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1980, 1980); map.put(1979, 1979); map.put(1978, 1978); map.put(1977, 1977); map.put(1976, 1976); assertThat(selector.select(ladder, 2000, 5), is(map)); } }