1 package net.pterodactylus.sone.template;
3 import static org.hamcrest.MatcherAssert.assertThat;
4 import static org.hamcrest.Matchers.allOf;
5 import static org.hamcrest.Matchers.greaterThanOrEqualTo;
6 import static org.hamcrest.Matchers.lessThanOrEqualTo;
7 import static org.hamcrest.Matchers.nullValue;
8 import static org.hamcrest.Matchers.sameInstance;
10 import java.util.Arrays;
11 import java.util.Collections;
12 import java.util.List;
14 import net.pterodactylus.util.template.Accessor;
16 import org.junit.Test;
19 * Unit test for {@link ListAccessorTest}.
21 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
23 public class ListAccessorTest {
25 private final Accessor accessor = new ListAccessor();
28 public void gettingARandomElementFromAnEmptyListReturnsNull() {
29 assertThat(accessor.get(null, Collections.emptyList(), "random"), nullValue());
33 public void gettingARandomElementFromAListOfOneWillReturnTheOneElement() {
34 Object object = new Object();
35 assertThat(accessor.get(null, Arrays.asList(object), "random"), sameInstance(object));
39 public void gettingRandomElementsFromAListTwoElementsWillReturnBothWithSomeProportion() {
40 Object first = new Object();
41 Object second = new Object();
42 List<?> objects = Arrays.asList(first, second);
44 for (int i = 0; i < 10000; i++) {
45 if (accessor.get(null, objects, "random") == first) {
49 assertThat(gotFirst, allOf(greaterThanOrEqualTo(4000), lessThanOrEqualTo(6000)));