### Question:
DepositGenerateCommand implements Runnable { @Override public void run() { final GenerateAction generateAction = generateParams.createGenerateAction(verboseOutputParam.isVerboseOutputEnabled()); generateAction.generateKeys(); shutdownFunction.accept(0); } DepositGenerateCommand(); @VisibleForTesting  DepositGenerateCommand(
      final Consumer<Integer> shutdownFunction,
      final GenerateParams generateParams,
      final VerboseOutputParam verboseOutputParam); @Override void run();  }### Answer:
@Test public void generatesKeysWithDisplayConfirmation() { final DepositGenerateCommand depositGenerateCommand = new DepositGenerateCommand(shutdownFunction, generateParams, new VerboseOutputParam(true)); depositGenerateCommand.run(); verify(generateParams).createGenerateAction(true); verify(generateAction).generateKeys(); }
@Test public void generatesKeysWithoutDisplayConfirmation() { final DepositGenerateCommand depositGenerateCommand = new DepositGenerateCommand(shutdownFunction, generateParams, new VerboseOutputParam(false)); depositGenerateCommand.run(); verify(generateParams).createGenerateAction(false); verify(generateAction).generateKeys(); }