private VsPackageRestorer CreateTarget(
            ISettings settings = null,
            ISolutionManager solutionManager            = null,
            IPackageRestoreManager restoreManager       = null,
            IVsProjectThreadingService threadingService = null,
            INuGetTelemetryProvider telemetryProvider   = null)
        {
            if (settings == null)
            {
                settings = new Mock <ISettings>().Object;
            }

            if (solutionManager == null)
            {
                solutionManager = new Mock <ISolutionManager>().Object;
            }

            if (restoreManager == null)
            {
                restoreManager = new Mock <IPackageRestoreManager>().Object;
            }

            if (threadingService == null)
            {
                threadingService = new TestProjectThreadingService();
            }

            if (telemetryProvider == null)
            {
                // Use strict mode, as known/expected errors should not post faults.
                telemetryProvider = new Mock <INuGetTelemetryProvider>(MockBehavior.Strict).Object;
            }

            return(new VsPackageRestorer(settings, solutionManager, restoreManager, threadingService, telemetryProvider));
        }
        private VsPackageInstallerServices CreateTarget(
            IVsSolutionManager vsSolutionManager = null,
            ISourceRepositoryProvider sourceRepositoryProvider = null,
            ISettings settings = null,
            IDeleteOnRestartManager deleteOnRestartManager       = null,
            IVsProjectThreadingService vsProjectThreadingService = null,
            INuGetTelemetryProvider telemetryProvider            = null)
        {
            if (vsSolutionManager == null)
            {
                vsSolutionManager = new Mock <IVsSolutionManager>().Object;
            }

            if (sourceRepositoryProvider == null)
            {
                sourceRepositoryProvider = new Mock <ISourceRepositoryProvider>().Object;
            }

            if (settings == null)
            {
                settings = new Mock <ISettings>().Object;
            }

            if (deleteOnRestartManager == null)
            {
                deleteOnRestartManager = new Mock <IDeleteOnRestartManager>().Object;
            }

            if (vsProjectThreadingService == null)
            {
                vsProjectThreadingService = new TestProjectThreadingService();
            }

            if (telemetryProvider == null)
            {
                // Expected/user input errors should not be recorded as faults, hence use strict mode
                telemetryProvider = new Mock <INuGetTelemetryProvider>(MockBehavior.Strict).Object;
            }

            return(new VsPackageInstallerServices(vsSolutionManager, sourceRepositoryProvider, settings, deleteOnRestartManager, vsProjectThreadingService, telemetryProvider));
        }