private void checkLinks(MetaDocument document, List<MetaModule> modules) {
    MetaLink linkA = (MetaLink) document.getField("a2");
    MetaLink linkB = (MetaLink) document.getField("b2");

    assertTrue(linkA.isLinked());
    assertTrue(linkB.isLinked());

    MetaDocument targetA = findModule("SimpleModuleA", modules).getDocumentByName("DocumentA2");
    MetaDocument targetB = findModule("SimpleModuleB", modules).getDocumentByName("DocumentB2");

    System.out.println("TargetA: " + targetA);
    System.out.println("TargetA Module: " + targetA.getParentModule());
    System.out.println("TargetB: " + targetB);
    System.out.println("TargetB Module: " + targetB.getParentModule());

    assertTrue(linkA.isRelative());
    // TODO this test fails due the shortcut in the same document.
    // assertTrue(linkA.doesTargetMatch(targetA));
    assertEquals("DocumentA2", linkA.getTargetDocumentName());
    assertEquals(null, linkA.getTargetModuleName());

    assertFalse(linkB.isRelative());
    assertTrue(linkB.doesTargetMatch(targetB));
    assertEquals("DocumentB2", linkB.getTargetDocumentName());
    assertEquals("SimpleModuleB", linkB.getTargetModuleName());
    assertEquals("LINK_PROP_B2", linkB.toNameConstant());
  }
 private void checkProperties(MetaDocument document) {
   checkProperty(document.getField("booleanproperty"), "boolean", "Boolean");
   checkProperty(document.getField("intproperty"), "int", "Integer");
   checkProperty(document.getField("longproperty"), "long", "Long");
   checkProperty(document.getField("doubleproperty"), "double", "Double");
   checkProperty(document.getField("floatproperty"), "float", "Float");
   checkProperty(document.getField("stringproperty"), "String", "String");
   checkProperty(document.getField("textproperty"), "String", "String");
 }