test_class.declarator: cluecumberReportPlugin
test_class.modifier: private
test_class.original_string: private CluecumberReportPlugin cluecumberReportPlugin;
test_class.type: CluecumberReportPlugin
test_class.var_name: cluecumberReportPlugin
test_class.declarator: jsonPojoConverter
test_class.modifier: private
test_class.original_string: private JsonPojoConverter jsonPojoConverter;
test_class.type: JsonPojoConverter
test_class.var_name: jsonPojoConverter
test_class.declarator: fileIO
test_class.modifier: private
test_class.original_string: private FileIO fileIO;
test_class.type: FileIO
test_class.var_name: fileIO
test_class.file: plugin-code/src/test/java/com/trivago/cluecumber/CluecumberReportPluginTest.java
test_class.identifier: CluecumberReportPluginTest
test_case.body: @Test
      public void noErrorOnUnparsableJsonTest() throws CluecumberPluginException {
          when(fileIO.readContentFromFile(any())).thenReturn("json");
          when(jsonPojoConverter.convertJsonToReportPojos("json")).thenThrow(new CluecumberPluginException("failure"));
          cluecumberReportPlugin.execute();
      }
test_case.class_method_signature: CluecumberReportPluginTest.noErrorOnUnparsableJsonTest()
test_case.full_signature: @Test public void noErrorOnUnparsableJsonTest()
test_case.identifier: noErrorOnUnparsableJsonTest
test_case.invocations: thenReturn when readContentFromFile any thenThrow when convertJsonToReportPojos execute
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void noErrorOnUnparsableJsonTest()
focal_class.declarator: logger
focal_class.modifier: private final
focal_class.original_string: private final CluecumberLogger logger;
focal_class.type: CluecumberLogger
focal_class.var_name: logger
focal_class.declarator: propertyManager
focal_class.modifier: private final
focal_class.original_string: private final PropertyManager propertyManager;
focal_class.type: PropertyManager
focal_class.var_name: propertyManager
focal_class.declarator: fileSystemManager
focal_class.modifier: private final
focal_class.original_string: private final FileSystemManager fileSystemManager;
focal_class.type: FileSystemManager
focal_class.var_name: fileSystemManager
focal_class.declarator: fileIO
focal_class.modifier: private final
focal_class.original_string: private final FileIO fileIO;
focal_class.type: FileIO
focal_class.var_name: fileIO
focal_class.declarator: jsonPojoConverter
focal_class.modifier: private final
focal_class.original_string: private final JsonPojoConverter jsonPojoConverter;
focal_class.type: JsonPojoConverter
focal_class.var_name: jsonPojoConverter
focal_class.declarator: elementIndexPreProcessor
focal_class.modifier: private final
focal_class.original_string: private final ElementIndexPreProcessor elementIndexPreProcessor;
focal_class.type: ElementIndexPreProcessor
focal_class.var_name: elementIndexPreProcessor
focal_class.declarator: reportGenerator
focal_class.modifier: private final
focal_class.original_string: private final ReportGenerator reportGenerator;
focal_class.type: ReportGenerator
focal_class.var_name: reportGenerator
focal_class.declarator: skip
focal_class.modifier: @SuppressWarnings("unused")
      @Parameter(defaultValue = "false", property = "skip")
      private
focal_class.original_string: @SuppressWarnings("unused")
      @Parameter(defaultValue = "false", property = "skip")
      private boolean skip;
focal_class.type: boolean
focal_class.var_name: skip
focal_class.file: plugin-code/src/main/java/com/trivago/cluecumber/CluecumberReportPlugin.java
focal_class.identifier: CluecumberReportPlugin
focal_class.class_method_signature: CluecumberReportPlugin.CluecumberReportPlugin(
              final CluecumberLogger logger,
              final PropertyManager propertyManager,
              final FileSystemManager fileSystemManager,
              final FileIO fileIO,
              final JsonPojoConverter jsonPojoConverter,
              final ElementIndexPreProcessor elementIndexPreProcessor,
              final ReportGenerator reportGenerator
      )
focal_class.full_signature: @Inject public  CluecumberReportPlugin(
              final CluecumberLogger logger,
              final PropertyManager propertyManager,
              final FileSystemManager fileSystemManager,
              final FileIO fileIO,
              final JsonPojoConverter jsonPojoConverter,
              final ElementIndexPreProcessor elementIndexPreProcessor,
              final ReportGenerator reportGenerator
      )
focal_class.identifier: CluecumberReportPlugin
focal_class.modifiers: @Inject public
focal_class.parameters: (
              final CluecumberLogger logger,
              final PropertyManager propertyManager,
              final FileSystemManager fileSystemManager,
              final FileIO fileIO,
              final JsonPojoConverter jsonPojoConverter,
              final ElementIndexPreProcessor elementIndexPreProcessor,
              final ReportGenerator reportGenerator
      )
focal_class.signature:  CluecumberReportPlugin(
              final CluecumberLogger logger,
              final PropertyManager propertyManager,
              final FileSystemManager fileSystemManager,
              final FileIO fileIO,
              final JsonPojoConverter jsonPojoConverter,
              final ElementIndexPreProcessor elementIndexPreProcessor,
              final ReportGenerator reportGenerator
      )
focal_class.class_method_signature: CluecumberReportPlugin.execute()
focal_class.full_signature: public void execute()
focal_class.identifier: execute
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void execute()
focal_class.superclass: extends PropertyCollector
focal_method.body: public void execute() throws CluecumberPluginException {
          // Initialize logger to be available outside the AbstractMojo class
          logger.initialize(getLog(), logLevel);
  
          if (skip) {
              logger.info("Cluecumber report generation was skipped using the <skip> property.",
                      DEFAULT);
              return;
          }
  
          logger.logInfoSeparator(DEFAULT);
          logger.info(String.format(" Cluecumber Report Maven Plugin, version %s", getClass().getPackage()
                  .getImplementationVersion()), DEFAULT);
          logger.logInfoSeparator(DEFAULT, COMPACT);
  
          super.execute();
  
          // Create attachment directory here since they are handled during json generation.
          fileSystemManager.createDirectory(propertyManager.getGeneratedHtmlReportDirectory() + "/attachments");
  
          AllScenariosPageCollection allScenariosPageCollection = new AllScenariosPageCollection(propertyManager.getCustomPageTitle());
          List<Path> jsonFilePaths = fileSystemManager.getJsonFilePaths(propertyManager.getSourceJsonReportDirectory());
          for (Path jsonFilePath : jsonFilePaths) {
              String jsonString = fileIO.readContentFromFile(jsonFilePath.toString());
              try {
                  Report[] reports = jsonPojoConverter.convertJsonToReportPojos(jsonString);
                  allScenariosPageCollection.addReports(reports);
              } catch (CluecumberPluginException e) {
                  logger.warn("Could not parse JSON in file '" + jsonFilePath.toString() + "': " + e.getMessage());
              }
          }
          elementIndexPreProcessor.addScenarioIndices(allScenariosPageCollection.getReports());
          reportGenerator.generateReport(allScenariosPageCollection);
          logger.info(
                  "=> Cluecumber Report: " + propertyManager.getGeneratedHtmlReportDirectory() + "/" +
                          PluginSettings.START_PAGE_PATH + PluginSettings.HTML_FILE_EXTENSION,
                  DEFAULT,
                  COMPACT,
                  CluecumberLogger.CluecumberLogLevel.MINIMAL
          );
      }
focal_method.class_method_signature: CluecumberReportPlugin.execute()
focal_method.full_signature: public void execute()
focal_method.identifier: execute
focal_method.invocations: initialize getLog info logInfoSeparator info format getImplementationVersion getPackage getClass logInfoSeparator execute createDirectory getGeneratedHtmlReportDirectory getCustomPageTitle getJsonFilePaths getSourceJsonReportDirectory readContentFromFile toString convertJsonToReportPojos addReports warn toString getMessage addScenarioIndices getReports generateReport info getGeneratedHtmlReportDirectory
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void execute()