@Override
    public FieldValueSuggestionMode convertFrom(final String value) {
        try {
            return FieldValueSuggestionMode.valueOf(value.trim().toUpperCase(Locale.ROOT));
        } catch (IllegalArgumentException e) {
            throw new ParameterException("Parameter should have one of the allowed values: " + Arrays.toString(FieldValueSuggestionMode.values()) + " (found: " + value + ")");
        }
    }
@Test
    void convertFrom() {
        Assertions.assertThat(converter.convertFrom("ON")).isEqualTo(FieldValueSuggestionMode.ON);
        Assertions.assertThat(converter.convertFrom("OFF")).isEqualTo(FieldValueSuggestionMode.OFF);
        Assertions.assertThat(converter.convertFrom("TEXTUAL_ONLY")).isEqualTo(FieldValueSuggestionMode.TEXTUAL_ONLY);

        // case sensitivity
        Assertions.assertThat(converter.convertFrom("on")).isEqualTo(FieldValueSuggestionMode.ON);

        // whitespace around
        Assertions.assertThat(converter.convertFrom(" on ")).isEqualTo(FieldValueSuggestionMode.ON);

        Assertions.assertThatThrownBy(() -> converter.convertFrom("nonsence"))
                .isInstanceOf(ParameterException.class)
                .hasMessageContaining("Parameter should have one of the allowed values");
    }