/** Validate that the report pages were generated correctly */
  private void validateReports(GraphContext context) {
    ReportService reportService = new ReportService(context);
    ReportModel mainApplicationReportModel = getMainApplicationReport(context);
    Path mainAppReport =
        reportService.getReportDirectory().resolve(mainApplicationReportModel.getReportFilename());

    ReportModel catchallApplicationReportModel = getMigrationIssuesReport(context);
    Path catchallAppReport =
        reportService
            .getReportDirectory()
            .resolve(catchallApplicationReportModel.getReportFilename());

    TestJavaApplicationOverviewUtil javaApplicationOverviewUtil =
        new TestJavaApplicationOverviewUtil();
    javaApplicationOverviewUtil.loadPage(mainAppReport);
    javaApplicationOverviewUtil.checkFilePathEffort("catchalltest", "FileWithoutCatchallHits", 13);
    javaApplicationOverviewUtil.checkFilePathEffort("catchalltest", "FileWithBoth", 27);
    javaApplicationOverviewUtil.checkFilePathEffort("catchalltest", "FileWithNoHintsRules", 63);

    TestMigrationIssuesReportUtil migrationIssuesReportUtil = new TestMigrationIssuesReportUtil();
    migrationIssuesReportUtil.loadPage(catchallAppReport);

    Assert.assertTrue(
        migrationIssuesReportUtil.checkIssue(
            "java.util.* found ", 7, 7, "Requires architectural decision or change", 49));
  }
  /** Validate that the report pages were generated correctly */
  private void validateReports(GraphContext context) {
    ReportService reportService = new ReportService(context);
    ReportModel reportModel = getMainApplicationReport(context);
    Path appReportPath =
        Paths.get(reportService.getReportDirectory(), reportModel.getReportFilename());

    TestJavaApplicationOverviewUtil util = new TestJavaApplicationOverviewUtil();
    util.loadPage(appReportPath);
    util.checkFilePathAndTag("src_example", "src/main/resources/test.properties", "Properties");
    util.checkFilePathAndTag("src_example", "src/main/resources/WEB-INF/web.xml", "Web XML 3.0");
    util.checkFilePathAndTag(
        "src_example", "src/main/resources/WEB-INF/web.xml", "TestTag2"); // WINDUP-679
    util.checkFilePathAndIssues(
        "src_example",
        "org.windup.examples.servlet.SampleServlet",
        "References annotation 'javax.servlet.annotation.WebServlet'");
    util.checkFilePathAndIssues("src_example", "src/main/resources/WEB-INF/web.xml", "Container");
    util.checkFilePathAndIssues(
        "src_example", "src/main/resources/WEB-INF/web.xml", "Title for Hint from XML");
    util.checkFilePathAndIssues(
        "src_example", "src/main/resources/WEB-INF/web.xml", "title from user script");

    util.checkFilePathAndIssues(
        "src_example",
        "org.windup.examples.servlet.SampleServlet",
        "javax.servlet.http.HttpServletRequest usage");

    XsltTransformationService xsltService = new XsltTransformationService(context);
    Assert.assertTrue(
        Files.isRegularFile(
            xsltService.getTransformedXSLTPath().resolve("web-xml-converted-example.xml")));
    Assert.assertTrue(
        Files.isRegularFile(
            xsltService
                .getTransformedXSLTPath()
                .resolve("web-xmluserscript-converted-example.xml")));

    validateSpringBeanReport(context);
    validateEJBReport(context);
    validateJPAReport(context);
    validateMigrationIssuesReport(context);
  }
  /** Validate that the report pages were generated correctly */
  private void validateReports(GraphContext context) {
    ReportService reportService = new ReportService(context);
    ReportModel reportModel =
        reportService.getUniqueByProperty(
            ReportModel.TEMPLATE_PATH,
            CreateJavaApplicationOverviewReportRuleProvider.TEMPLATE_APPLICATION_REPORT);
    Path appReportPath =
        Paths.get(reportService.getReportDirectory(), reportModel.getReportFilename());

    TestJavaApplicationOverviewUtil util = new TestJavaApplicationOverviewUtil();
    util.loadPage(appReportPath);
    util.checkFilePathAndTag(
        "Windup1x-javaee-example.war", "META-INF/maven/javaee/javaee/pom.properties", "Properties");
    util.checkFilePathEffort(
        "Windup1x-javaee-example.war", "META-INF/maven/javaee/javaee/pom.properties", 0);
    util.checkFilePathEffort(
        "Windup1x-javaee-example.war/WEB-INF/lib/joda-time-2.0.jar",
        "org.joda.time.tz.DateTimeZoneBuilder",
        32);
    validateStaticIPReport(context);
  }