SecurityAnalysisExecutionImpl implements SecurityAnalysisExecution { @Override public CompletableFuture<SecurityAnalysisResult> execute(ComputationManager computationManager, SecurityAnalysisExecutionInput data) { SecurityAnalysisInput input = buildInput(data); SecurityAnalysis securityAnalysis = buildSecurityAnalysis(input, computationManager); return securityAnalysis.run(input.getNetworkVariant().getVariantId(), input.getParameters(), input.getContingenciesProvider()); } SecurityAnalysisExecutionImpl(SecurityAnalysisFactory factory);  SecurityAnalysisExecutionImpl(SecurityAnalysisFactory factory, SecurityAnalysisInputBuildStrategy inputBuildStrategy); @Override CompletableFuture<SecurityAnalysisResult> execute(ComputationManager computationManager, SecurityAnalysisExecutionInput data); @Override CompletableFuture<SecurityAnalysisResultWithLog> executeWithLog(ComputationManager computationManager, SecurityAnalysisExecutionInput data);  }
@Test public void checkExecutionCallAndArguments() { execution.execute(computationManager, input); Mockito.verify(factory, Mockito.times(1)) .create(same(network), same(detector), same(filter), same(computationManager), anyInt()); Mockito.verify(analysis, Mockito.times(1)) .run(eq("variantId"), same(parameters), same(contingencies)); }