### Question:
EnumProvider implements Provider<T> { @Override public List<String> getSuggestions(String prefix) { List<String> suggestions = Lists.newArrayList(); String test = simplify(prefix); for (T entry : enumClass.getEnumConstants()) { String name = simplify(entry.name()); if (name.startsWith(test)) { suggestions.add(entry.name().toLowerCase()); } } return suggestions; } EnumProvider(Class<T> enumClass); @Override boolean isProvided(); @Nullable @Override T get(CommandArgs arguments, List<? extends Annotation> modifiers); @Override List<String> getSuggestions(String prefix);  }### Answer:
@Test public void testGetSuggestions() throws Exception { assertThat(provider.getSuggestions(""), containsInAnyOrder("small", "medium", "large", "very_large")); assertThat(provider.getSuggestions("s"), containsInAnyOrder("small")); assertThat(provider.getSuggestions("la"), containsInAnyOrder("large")); assertThat(provider.getSuggestions("very"), containsInAnyOrder("very_large")); assertThat(provider.getSuggestions("verylarg"), containsInAnyOrder("very_large")); assertThat(provider.getSuggestions("very_"), containsInAnyOrder("very_large")); assertThat(provider.getSuggestions("tiny"), Matchers.<String>empty()); }