### Question:
EnumConverter implements Converter<Enum> { public boolean getAllPossibleValues(final List<Completion> completions, final Class<?> requiredType, final String existingData, final String optionContext, final MethodTarget target) { final Class<Enum> enumClass = (Class<Enum>) requiredType; for (final Enum enumValue : enumClass.getEnumConstants()) { final String candidate = enumValue.name(); if ("".equals(existingData) || candidate.startsWith(existingData) || existingData.startsWith(candidate) || candidate.toUpperCase().startsWith(existingData.toUpperCase()) || existingData.toUpperCase().startsWith(candidate.toUpperCase())) { completions.add(new Completion(candidate)); } } return true; }  Enum convertFromText(final String value, final Class<?> requiredType,
      final String optionContext); boolean getAllPossibleValues(final List<Completion> completions,
      final Class<?> requiredType, final String existingData, final String optionContext,
      final MethodTarget target); boolean supports(final Class<?> requiredType, final String optionContext);  }### Answer:
@Test public void testGetAllPossibleValuesForPartialName() { final List<Completion> completions = new ArrayList<Completion>(); final boolean result = enumConverter.getAllPossibleValues(completions, Flavour.class, "b", "anything", null); assertTrue(result); assertEquals(1, completions.size()); assertEquals(Flavour.BANANA.name(), completions.get(0).getValue()); }