/**
   * Check if definition methods: isVisible, isHidden, isPrivate and isStorable works as expected by
   * defining some of them.
   */
  @Test
  public void testDefinitionsMethods() {
    RPClass b = new RPClass("RPClassTest::F");
    assertEquals(b, RPClass.getRPClass("RPClassTest::F"));

    b.add(DefinitionClass.ATTRIBUTE, "a", Type.INT, Definition.STANDARD);
    b.add(DefinitionClass.ATTRIBUTE, "b", Type.FLAG, Definition.HIDDEN);
    b.add(
        DefinitionClass.ATTRIBUTE,
        "c",
        Type.STRING,
        (byte) (Definition.PRIVATE | Definition.VOLATILE));

    Definition def = b.getDefinition(DefinitionClass.ATTRIBUTE, "a");
    assertEquals(Type.INT, def.getType());
    assertTrue(def.isVisible());
    assertFalse(def.isHidden());
    assertFalse(def.isPrivate());
    assertTrue(def.isStorable());

    def = b.getDefinition(DefinitionClass.ATTRIBUTE, "b");
    assertEquals(Type.FLAG, def.getType());
    assertFalse(def.isVisible());
    assertTrue(def.isHidden());
    assertFalse(def.isPrivate());
    assertTrue(def.isStorable());

    def = b.getDefinition(DefinitionClass.ATTRIBUTE, "c");
    assertEquals(Type.STRING, def.getType());
    assertFalse(def.isVisible());
    assertFalse(def.isHidden());
    assertTrue(def.isPrivate());
    assertFalse(def.isStorable());
  }