@Test
  public void testPrecedence2() throws IOException {
    String filterString =
      " PrefixFilter ('realtime')AND  SKIP FirstKeyOnlyFilter()" + "OR KeyOnlyFilter()";
    FilterList filterList = doTestFilter(filterString, FilterList.class);
    ArrayList<Filter> filters = (ArrayList<Filter>) filterList.getFilters();

    assertTrue(filters.get(0) instanceof FilterList);
    assertTrue(filters.get(1) instanceof KeyOnlyFilter);

    filterList = (FilterList) filters.get(0);
    filters = (ArrayList<Filter>) filterList.getFilters();

    assertTrue(filters.get(0) instanceof PrefixFilter);
    assertTrue(filters.get(1) instanceof SkipFilter);

    PrefixFilter prefixFilter = (PrefixFilter) filters.get(0);
    byte[] prefix = prefixFilter.getPrefix();
    assertEquals("realtime", new String(prefix, StandardCharsets.UTF_8));

    SkipFilter skipFilter = (SkipFilter) filters.get(1);
    assertTrue(skipFilter.getFilter() instanceof FirstKeyOnlyFilter);
  }
This class tests ParseFilter.java It tests the entire work flow from when a string is given by
the user and how it is parsed to construct the corresponding Filter object
hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestParseFilter.java