public ScanResults run(ScanTarget scanTarget) throws ExecutionException, InterruptedException {
    return runAsync(scanTarget).get();
  }
@Test
  public void run_whenServiceFingerprinterFailed_reusesNetworkServicesFromPortScan()
      throws ExecutionException, InterruptedException {
    Injector injector =
        Guice.createInjector(
            new FakeUtcClockModule(),
            new FakePluginExecutionModule(),
            new FakePortScannerBootstrapModule(),
            new FailedServiceFingerprinterBootstrapModule(),
            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(
            FakePortScanner.getFakeNetworkService(buildScanTarget().getNetworkEndpoint()));
  }