@Test
  public void propertyTest() throws Exception {

    Collection<PropertyBase> properties =
        parser.parseProperties("urn:resource:org/richfaces/cdk/xmlconfig/properties.xml");

    assertEquals(1, properties.size());

    PropertyBase property = Iterables.getOnlyElement(properties);
    assertEquals("ontest2", property.getName());

    assertEquals("int", property.getType().getName());
    assertEquals("test2 property", property.getDescription());
    assertEquals("ontest2.png", property.getIcon().getSmallIcon());
    assertEquals("test2 event property", property.getDisplayName());
    assertEquals("3", property.getDefaultValue());
    assertEquals("15", property.getSuggestedValue());

    // CDK extensions.
    assertTrue(property.getGenerate());
    assertTrue(property.isHidden());
    assertTrue(property.isLiteral());
    assertTrue(property.isPassThrough());
    assertTrue(property.isRequired());

    List<ClassName> signature = property.getSignature().getParameters();

    assertEquals(2, signature.size());

    String alias = property.getAliasFor();

    assertEquals("bar", alias);
  }
  @Test
  public void parserTest() throws Exception {

    Collection<PropertyBase> properties =
        parser.parseProperties("urn:resource:org/richfaces/cdk/xmlconfig/fragment.xml");

    assertEquals(3, properties.size());
  }
  @Test
  public void nestedXincludeTest() throws Exception {

    Collection<PropertyBase> properties =
        parser.parseProperties("urn:resource:org/richfaces/cdk/xmlconfig/parent2.xml");

    assertEquals(2, properties.size());
  }