### Question:
AvailableValuesProvider { public static <T extends Enum<T>> List<T> enumToValues(Class<T> valueClass, boolean inclNull) { List<T> values = Arrays.asList(valueClass.getEnumConstants()); if (inclNull) { ArrayList<T> result = new ArrayList<>(); result.add(null); result.addAll(values); return Collections.unmodifiableList(result); } else { return values; } } private  AvailableValuesProvider(); static List<T> enumToValues(Class<T> valueClass, boolean inclNull); static List<Boolean> booleanWrapperToValues(); static List<Object> booleanPrimitiveToValues();  }### Answer:
@SuppressWarnings("unchecked") @Test public void testEnumToValues() { assertThat(AvailableValuesProvider.enumToValues(TestEnum.class, false).size(), is(3)); assertThat(AvailableValuesProvider.enumToValues(TestEnum.class, true).size(), is(4)); assertThat(AvailableValuesProvider.enumToValues(TestEnum.class, true).get(0), is(nullValue())); assertThat(AvailableValuesProvider.enumToValues(TestEnum.VALUE1.getClass().asSubclass(Enum.class), false) .size(), is(3)); }