/// <summary>
        /// Initializes a new instance of the <see cref="DotNetToolPackageInstaller"/> class.
        /// </summary>
        /// <param name="environment">The environment.</param>
        /// <param name="processRunner">The process runner.</param>
        /// <param name="log">The log.</param>
        /// <param name="contentResolver">The DotNetTool Package Content Resolver.</param>
        /// <param name="config">the configuration</param>
        /// <param name="fileSystem">The file system.</param>
        public DotNetToolPackageInstaller(ICakeEnvironment environment, IProcessRunner processRunner, ICakeLog log, IDotNetToolContentResolver contentResolver, ICakeConfiguration config, IFileSystem fileSystem)
        {
            if (environment == null)
            {
                throw new ArgumentNullException(nameof(environment));
            }

            if (processRunner == null)
            {
                throw new ArgumentNullException(nameof(processRunner));
            }

            if (log == null)
            {
                throw new ArgumentNullException(nameof(log));
            }

            if (contentResolver == null)
            {
                throw new ArgumentNullException(nameof(contentResolver));
            }

            _environment     = environment;
            _processRunner   = processRunner;
            _log             = log;
            _contentResolver = contentResolver;
            _config          = config;
            _fileSystem      = fileSystem;
        }