public ConsoleUpgrade(
     IUserInput input,
     InputOutputStreams io,
     IUpgradeContextFactory contextFactory,
     CommandProvider commandProvider,
     UpgraderManager upgrader,
     IUpgradeStateManager stateManager,
     ILogger <ConsoleUpgrade> logger)
 {
     _input           = input ?? throw new ArgumentNullException(nameof(input));
     _io              = io ?? throw new ArgumentNullException(nameof(io));
     _contextFactory  = contextFactory ?? throw new ArgumentNullException(nameof(contextFactory));
     _commandProvider = commandProvider ?? throw new ArgumentNullException(nameof(commandProvider));
     _upgrader        = upgrader ?? throw new ArgumentNullException(nameof(upgrader));
     _stateManager    = stateManager ?? throw new ArgumentNullException(nameof(stateManager));
     _logger          = logger ?? throw new ArgumentNullException(nameof(logger));
 }