Example #1
0
  private void readLibrary(
      LibraryModelBuilder expectedModelBuilder,
      KiwidocLibraryStore kiwidocLibraryStore,
      LibraryVersionResource libraryVersion)
      throws StoreException, NoSuchContentException, IOException {
    LibraryVersionModel libraryVersionModel =
        (LibraryVersionModel) kiwidocLibraryStore.loadContent(libraryVersion);

    LibraryVersionModel elvm = expectedModelBuilder.buildModel();
    Map<PackageResource, PackageModel> expectedPackages =
        new HashMap<PackageResource, PackageModel>();
    for (SimplePackageModel packageModel : elvm.getAllPackages()) {
      PackageModelBuilder packageModelBuilder =
          expectedModelBuilder.findPackage(packageModel.getName());
      expectedPackages.put(packageModel.getResource(), packageModelBuilder.buildModel());
    }

    for (SimplePackageModel packageModel : libraryVersionModel.getAllPackages()) {
      PackageModel expectedPackageModel = expectedPackages.remove(packageModel.getResource());
      Map<String, ClassDefinitionModel> expectedClasses =
          new HashMap<String, ClassDefinitionModel>();
      for (ClassDefinitionModel cdm : expectedPackageModel.getAllClasses()) {
        expectedClasses.put(cdm.getName(), cdm);
      }

      PackageModel loadedPackageModel =
          (PackageModel) kiwidocLibraryStore.loadContent(packageModel.getResource());
      loadedPackageModel =
          kiwidocLibraryStore.resolve(DependenciesModel.NO_DEPENDENCIES, loadedPackageModel);

      assertEquals(expectedClasses.size(), loadedPackageModel.getAllClasses().size());

      for (ClassDefinitionModel cdm : loadedPackageModel.getAllClasses()) {
        ClassDefinitionModel expectedClassDefinitionModel = expectedClasses.get(cdm.getName());
        assertEquals(expectedClassDefinitionModel.getType().toString(), cdm.getType().toString());
        assertEquals(expectedClassDefinitionModel.getClassResource(), cdm.getClassResource());
        assertEquals(expectedClassDefinitionModel.getAccess(), cdm.getAccess());
      }

      for (String className : packageModel.getAllClasses()) {
        expectedClasses.remove(className);

        ClassModel expectedClassModel =
            getClassModel(expectedModelBuilder, loadedPackageModel.getResource(), className);
        ClassModel classModel =
            (ClassModel)
                kiwidocLibraryStore.loadContent(
                    new ClassResource(loadedPackageModel.getResource(), className));

        checkDoc(expectedClassModel, classModel);

        assertEquals(expectedClassModel.getAllMethods().size(), classModel.getAllMethods().size());
        for (MethodModel methodModel : classModel.getAllMethods()) {
          MethodModel expectedMethodModel =
              expectedClassModel.findMethod(methodModel.getMemberName());

          checkDoc(expectedMethodModel, methodModel);
        }

        InheritanceModel inheritanceModel =
            kiwidocLibraryStore.resolveWithInheritance(
                DependenciesModel.NO_DEPENDENCIES, classModel);
        inheritanceModel = inheritanceModel.inheritDoc();
        assertNotNull(inheritanceModel);
      }
      assertTrue(expectedClasses.isEmpty());
    }

    assertTrue(expectedPackages.isEmpty());
  }