public ScanResults run(ScanTarget scanTarget) throws ExecutionException, InterruptedException {
    return runAsync(scanTarget).get();
  }
@Test
  public void run_whenServiceFingerprinterSucceeded_fillsReconnaissanceReportWithFingerprintResult()
      throws ExecutionException, InterruptedException {
    Injector injector =
        Guice.createInjector(
            new FakeUtcClockModule(),
            new FakePluginExecutionModule(),
            new FakePortScannerBootstrapModule(),
            new FakeServiceFingerprinterBootstrapModule(),
            new FakeVulnDetectorBootstrapModule(),
            new FakeVulnDetectorBootstrapModule2());
    scanningWorkflow = injector.getInstance(DefaultScanningWorkflow.class);

    ScanResults scanResults = scanningWorkflow.run(buildScanTarget());

    assertThat(scanResults.getScanStatus()).isEqualTo(ScanStatus.SUCCEEDED);
    assertThat(scanResults.getReconnaissanceReport().getNetworkServicesList())
        .containsExactly(
            FakeServiceFingerprinter.addWebServiceContext(
                FakePortScanner.getFakeNetworkService(buildScanTarget().getNetworkEndpoint())));
  }