public static List<Criterion> parse(String filter) {
    return StreamSupport.stream(CRITERIA_SPLITTER.split(filter).spliterator(), false)
      .map(FilterParser::parseCriterion)
      .toList();
  }
@Test
  public void parse_filter_having_value_containing_non_alphanumeric_characters() {
    List<Criterion> criterion = FilterParser.parse("q = \"+*ç%&/()\"");

    assertThat(criterion)
      .extracting(Criterion::getKey, Criterion::getOperator, Criterion::getValue)
      .containsOnly(
        tuple("q", EQ, "+*ç%&/()"));
  }