ListUtils { public static <T> List<T> copyOf(Collection<? extends T> values) { return values.isEmpty() ? Collections.emptyList() : Collections.unmodifiableList(new ArrayList<>(values)); } private  ListUtils(); static List<T> copyOf(Collection<? extends T> values); static List<T> of(); static List<T> of(T value); @SafeVarargs @SuppressWarnings("varargs") static List<T> of(T... values); static Collector<T, ?, List<T>> toUnmodifiableList();  }
@Test public void copyOfEmptyIsEmpty() { assertThat(ListUtils.copyOf(Collections.emptyList()), empty()); }
@Test public void copyOfIsSame() { assertThat(ListUtils.copyOf(Collections.singletonList("Jason")), contains("Jason")); }