public void testParseGetCapabilitiesCuzk() throws Exception {
    configuration = new org.geotools.wfs.v2_0.WFSCapabilitiesConfiguration();

    Parser parser = new Parser(configuration);
    Object parsed = parser.parse(getClass().getResourceAsStream("cuzk-GetCapabilities_2_0_0.xml"));

    assertNotNull(parsed);
    assertTrue(parsed.getClass().getName(), parsed instanceof WFSCapabilitiesType);
    WFSCapabilitiesType caps = (WFSCapabilitiesType) parsed;

    assertNotNull(caps);
    assertEquals("2.0.0", caps.getVersion());

    FilterCapabilitiesType fct = caps.getFilterCapabilities();
    assertNotNull(fct);
  }
  void assertFilterCapabilities(WFSCapabilitiesType caps) {
    FilterCapabilities fc = (FilterCapabilities) caps.getFilterCapabilities();

    assertNotNull(fc.getSpatialCapabilities());
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators());
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperators());
    assertEquals(11, fc.getSpatialCapabilities().getSpatialOperators().getOperators().size());

    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperator("Disjoint"));
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperator("Equals"));
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperator("DWithin"));
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperator("Beyond"));
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperator("Intersect"));
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperator("Touches"));
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperator("Crosses"));
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperator("Within"));
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperator("Contains"));
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperator("Overlaps"));
    assertNotNull(fc.getSpatialCapabilities().getSpatialOperators().getOperator("BBOX"));

    assertNotNull(fc.getScalarCapabilities());
    assertTrue(fc.getScalarCapabilities().hasLogicalOperators());
    assertNotNull(fc.getScalarCapabilities().getArithmeticOperators());
    assertNotNull(fc.getScalarCapabilities().getComparisonOperators());

    assertTrue(fc.getScalarCapabilities().getArithmeticOperators().hasSimpleArithmetic());
    assertNotNull(fc.getScalarCapabilities().getArithmeticOperators().getFunctions());
    assertEquals(
        7,
        fc.getScalarCapabilities()
            .getArithmeticOperators()
            .getFunctions()
            .getFunctionNames()
            .size());

    Collection<Operator> operators =
        fc.getScalarCapabilities().getComparisonOperators().getOperators();

    assertEquals(3, operators.size()); // "Simple_Comparisons" is commented out on purpose

    assertNotNull(fc.getScalarCapabilities().getComparisonOperators().getOperator("Between"));
    assertNotNull(fc.getScalarCapabilities().getComparisonOperators().getOperator("Like"));
    assertNotNull(fc.getScalarCapabilities().getComparisonOperators().getOperator("NullCheck"));
  }