Пример #1
0
  public void testAddUsage_Method6() throws ParseException {
    addType(
        "Class1",
        "class Class1 {\n"
            + "  class InnerClass {\n"
            + "     public void method() {}\n"
            + "  };\n"
            + "}\n",
        true);

    resolve();

    TypeDeclaration typeDecl1 = _project.getType("Class1");
    TypeDeclaration typeDecl2 = typeDecl1.getInnerTypes().get("InnerClass");
    MethodDeclaration methodDecl = typeDecl2.getMethods().get(0);

    _testObject = new FeatureUsages(typeDecl1);
    _testObject.addUsage(typeDecl1, methodDecl);
    _testObject.addUsage(typeDecl2, methodDecl);
    _testObject.addUsage(typeDecl2, methodDecl);

    // check used types
    assertNotNull(_testObject.getUsedTypes());
    assertEquals(2, _testObject.getUsedTypes().getCount());
    assertTrue(_testObject.isUsed(typeDecl1));
    assertTrue(_testObject.isUsed(typeDecl2));
    assertNotNull(_testObject.getTypeUsage(typeDecl1));
    assertNotNull(_testObject.getTypeUsage(typeDecl2));
    assertEquals(1, _testObject.getTypeUsage(typeDecl1).getUsedFeatureCount());
    assertEquals(1, _testObject.getTypeUsage(typeDecl2).getUsedFeatureCount());

    // how many features are used?
    assertEquals(2, _testObject.getUsedFeatureCount());
    assertEquals(0, _testObject.getUsedRemoteFeatureCount());
    assertEquals(0, _testObject.getUsedInheritedFeatureCount());
    assertEquals(2, _testObject.getUsedLocalFeatureCount());

    // how many usages are counted?
    assertEquals(3, _testObject.getUsageCount());
    assertEquals(0, _testObject.getRemoteUsageCount());
    assertEquals(0, _testObject.getInheritedUsageCount());
    assertEquals(3, _testObject.getLocalUsageCount());

    // how many remote types are used?
    assertEquals(0, _testObject.getUsedRemoteTypeCount());
    assertEquals(0, _testObject.getUsedFeatureCountOfMaxUsedRemoteType());
  }