internal void OnApply()
        {
            _productUpdateSettings.ShouldCheckForUpdate = checkForUpdate.Checked;

            var packageRestoreConsent = new PackageRestoreConsent(_settings);
            packageRestoreConsent.IsGranted = packageRestoreConsentCheckBox.Checked;
        }
        internal void OnActivated()
        {
            browsePackageCacheButton.Enabled = clearPackageCacheButton.Enabled = Directory.Exists(MachineCache.Default.Source);

            if (!_initialized)
            {
                var packageRestoreConsent = new PackageRestoreConsent(_settings);
                packageRestoreConsentCheckBox.Checked = packageRestoreConsent.IsGranted;

                checkForUpdate.Checked = _productUpdateSettings.ShouldCheckForUpdate;
            }

            _initialized = true;
        }
        public void MissingSettingsKeyReturnsFalseForIsGranted()
        {
            // Arrange
            var settings = new Mock<ISettings>();
            var environmentReader = new Mock<IEnvironmentVariableReader>();

            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object);

            // Act
            bool isGranted = packageRestore.IsGranted;

            // Assert
            Assert.False(isGranted);
        }
        public void CorrectSettingsValueReturnsTrueForIsGranted(string settingsValue)
        {
            // Arrange
            var settings = new Mock<ISettings>();
            settings.Setup(s => s.GetValue("packageRestore", "enabled")).Returns(settingsValue);
            var environmentReader = new Mock<IEnvironmentVariableReader>();

            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object);

            // Act
            bool isGranted = packageRestore.IsGranted;

            // Assert
            Assert.True(isGranted);
        }
        public void MissingSettingsKeyReturnsTrueForIsGranted()
        {
            // Arrange
            var settings = new Mock<ISettings>();
            var environmentReader = new Mock<IEnvironmentVariableReader>();
            var mockFileSystem = new MockFileSystem();
            var configurationDefaults = new ConfigurationDefaults(mockFileSystem, "NuGetDefaults.config");

            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object, configurationDefaults);

            // Act
            bool isGranted = packageRestore.IsGranted;

            // Assert
            Assert.True(isGranted);
        }
        public void InCorrectEnvironmentVariableReturnsFalseForIsGranted(string environmentValue)
        {
            // Arrange
            var settings = new Mock<ISettings>();

            var environmentReader = new Mock<IEnvironmentVariableReader>();
            environmentReader.Setup(
                r => r.GetEnvironmentVariable("EnableNuGetPackageRestore")).
                Returns(environmentValue);

            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object);

            // Act
            bool isGranted = packageRestore.IsGranted;

            // Assert
            Assert.False(isGranted);
        }
        public void InCorrectEnvironmentVariableReturnsTrueForIsGranted(string environmentValue)
        {
            // Arrange
            var settings = Mock.Of<ISettings>();

            var environmentReader = new Mock<IEnvironmentVariableReader>();
            environmentReader.Setup(
                r => r.GetEnvironmentVariable("EnableNuGetPackageRestore")).
                Returns(environmentValue);

            var mockFileSystem = new MockFileSystem();
            var configurationDefaults = new ConfigurationDefaults(mockFileSystem, "NuGetDefaults.config");

            var packageRestore = new PackageRestoreConsent(settings, environmentReader.Object, configurationDefaults);

            // Act
            bool isGranted = packageRestore.IsGranted;

            // Assert
            Assert.True(isGranted);
        }
        public void TestIsAutomaticDefaultToIsGranted(string grantSetting, bool isAutomatic)
        {
            // Arrange
            var settings = new Mock<ISettings>();
            settings.Setup(s => s.GetValue("packageRestore", "enabled")).Returns(grantSetting);
            var environmentReader = new Mock<IEnvironmentVariableReader>();
            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object);

            // Assert
            Assert.Equal(isAutomatic, packageRestore.IsAutomatic);
        }
        public void SettingIsGrantedToTrueSetsTheFlagInConfigFile()
        {
            // Arrange
            var settings = new Mock<ISettings>();
            settings.Setup(s => s.GetValue("packageRestore", "enabled"));
            var environmentReader = new Mock<IEnvironmentVariableReader>();

            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object);

            // Act
            packageRestore.IsGranted = true;

            // Assert
            settings.Verify(s => s.SetValue("packageRestore", "enabled", "True"), Times.Once());
        }
        public void GrantingConsentInEitherSettingOrEnvironmentGrantsConsent(string settingsValue, string environmentValue)
        {
            // Arrange
            var settings = new Mock<ISettings>();
            var environmentReader = new Mock<IEnvironmentVariableReader>(); 
            
            settings.Setup(s => s.GetValue("packageRestore", "enabled")).Returns(settingsValue);
            environmentReader.Setup(r => r.GetEnvironmentVariable("EnableNuGetPackageRestore")).Returns(environmentValue);

            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object);

            // Act
            bool isGranted = packageRestore.IsGranted;

            // Assert
            Assert.True(isGranted);
        }
        public void IsGrantedFallsBackToEnvironmentVariableIfSettingsValueIsEmptyOfWhitespaceString(string settingsValue, string environmentValue, bool expected)
        {
            // Arrange
            var settings = new Mock<ISettings>(MockBehavior.Strict);
            settings.Setup(s => s.GetValue("packageRestore", "enabled")).Returns(settingsValue);

            var environmentReader = new Mock<IEnvironmentVariableReader>();
            environmentReader.Setup(
                r => r.GetEnvironmentVariable("EnableNuGetPackageRestore")).
                Returns(environmentValue);

            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object);

            // Act
            bool isGranted = packageRestore.IsGranted;

            // Assert
            Assert.Equal(expected, isGranted);
        }
        public void SettingIsGrantedToFalseDeleteTheSectionInConfigFile()
        {
            // Arrange
            var settings = new Mock<ISettings>();
            settings.Setup(s => s.GetValue("packageRestore", "enabled")).Returns("true");
            var environmentReader = new Mock<IEnvironmentVariableReader>();

            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object);

            // Act
            packageRestore.IsGranted = false;

            // Assert
            settings.Verify(s => s.SetValue("packageRestore", "enabled", "False"), Times.Once());
        }
 private void SetPackageRestoreConsent()
 {
     var consent = new PackageRestoreConsent(_settings);
     if (!consent.IsGranted)
     {
         consent.IsGrantedInSettings = true;
     }
 }
Example #14
0
 /// <summary>
 /// Returns true if the package restore user consent is granted.
 /// </summary>
 /// <returns>True if the package restore user consent is granted.</returns>
 private static bool IsConsentGranted()
 {
     var settings = ServiceLocator.GetInstance<ISettings>();
     var packageRestoreConsent = new PackageRestoreConsent(settings);
     return packageRestoreConsent.IsGranted;
 }
Example #15
0
 public PackageManagementOptions(Properties properties, ISettings settings)
 {
     this.properties = properties;
     registeredPackageSourceSettings = new RegisteredPackageSourceSettings(settings);
     packageRestoreConsent           = new PackageRestoreConsent(settings);
 }
Example #16
0
        /// <summary>
        /// Returns true if automatic package restore on build is enabled.
        /// </summary>
        /// <returns>True if automatic package restore on build is enabled.</returns>
        private static bool IsAutomatic(ISettings settings)
        {
            var packageRestoreConsent = new PackageRestoreConsent(settings);

            return(packageRestoreConsent.IsAutomatic);
        }
        public void UserGrantSettings(string valueInUserSettings, string valueInNuGetDefault, bool isGranted)
        {
            // Arrange
            var settings = new Mock<ISettings>();
            settings.Setup(s => s.GetValue("packageRestore", "enabled")).Returns(valueInUserSettings);

            var mockFileSystem = new MockFileSystem();
            mockFileSystem.AddFile("NuGetDefaults.config",
                String.Format(
@"
<configuration>
  <packageRestore>
    <add key=""enabled"" value=""{0}"" />
  </packageRestore>
</configuration>",
                valueInNuGetDefault));
            var configurationDefaults = new ConfigurationDefaults(mockFileSystem, "NuGetDefaults.config");

            var environmentReader = new Mock<IEnvironmentVariableReader>();
            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object, configurationDefaults);

            // Assert
            Assert.Equal(packageRestore.IsGrantedInSettings, isGranted);
        }
        public void TestIsAutomaticSettings(string valueInUserSettings, bool isAutomatic)
        {
            // Arrange
            var settings = new Mock<ISettings>();
            settings.Setup(s => s.GetValue("packageRestore", "automatic")).Returns(valueInUserSettings);
            var environmentReader = new Mock<IEnvironmentVariableReader>();
            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object);

            // Assert
            Assert.Equal(isAutomatic, packageRestore.IsAutomatic);
        }
        public void SettingIsAutomaticToTrueSetsTheFlagInConfigFile()
        {
            // Arrange
            var settings = new Mock<ISettings>();
            var environmentReader = new Mock<IEnvironmentVariableReader>();
            var packageRestore = new PackageRestoreConsent(settings.Object, environmentReader.Object);

            // Act
            packageRestore.IsAutomatic = true;

            // Assert
            settings.Verify(s => s.SetValue("packageRestore", "automatic", true.ToString()), Times.Once());
        }
Example #20
0
        /// <summary>
        /// Returns true if the package restore user consent is granted.
        /// </summary>
        /// <returns>True if the package restore user consent is granted.</returns>
        private static bool IsConsentGranted(ISettings settings)
        {
            var packageRestoreConsent = new PackageRestoreConsent(settings);

            return(packageRestoreConsent.IsGranted);
        }
Example #21
0
        private bool ExecuteInParallel(IFileSystem fileSystem, List<PackageReference> packageReferences)
        {
            bool packageRestore = new PackageRestoreConsent(_configSettings).IsGranted;
            int defaultConnectionLimit = ServicePointManager.DefaultConnectionLimit;
            if (packageReferences.Count > defaultConnectionLimit)
            {
                ServicePointManager.DefaultConnectionLimit = Math.Min(10, packageReferences.Count);
            }

            var tasks = packageReferences.Select(package =>
                            Task.Factory.StartNew(() => InstallPackage(fileSystem, package.Id, package.Version, ignoreDependencies: true, packageRestoreConsent: packageRestore, operation: RepositoryOperationNames.Restore))).ToArray();

            Task.WaitAll(tasks);
            return tasks.All(p => !p.IsFaulted && p.Result);
        }
Example #22
0
        /// <returns>True if one or more packages are installed.</returns>
        private bool ExecuteInParallel(IFileSystem fileSystem, ICollection<PackageReference> packageReferences)
        {
            bool packageRestoreConsent = new PackageRestoreConsent(Settings).IsGranted;
            int defaultConnectionLimit = ServicePointManager.DefaultConnectionLimit;
            if (packageReferences.Count > defaultConnectionLimit)
            {
                ServicePointManager.DefaultConnectionLimit = Math.Min(10, packageReferences.Count);
            }

            // The PackageSourceProvider reads from the underlying ISettings multiple times. One of the fields it reads is the password which is consequently decrypted
            // once for each package being installed. Per work item 2345, a couple of users are running into an issue where this results in an exception in native 
            // code. Instead, we'll use a cached set of sources. This should solve the issue and also give us some perf boost.
            SourceProvider = new CachedPackageSourceProvider(SourceProvider);

            var satellitePackages = new List<IPackage>();

            if (DisableParallelProcessing)
            {
                foreach (var package in packageReferences)
                {
                    RestorePackage(fileSystem, package.Id, package.Version, packageRestoreConsent, satellitePackages);
                }

                return true;
            }

            var tasks = packageReferences.Select(package =>
                            Task.Factory.StartNew(() => RestorePackage(fileSystem, package.Id, package.Version, packageRestoreConsent, satellitePackages))).ToArray();

            Task.WaitAll(tasks);
            // Return true if we installed any satellite packages or if any of our install tasks succeeded.
            return InstallSatellitePackages(fileSystem, satellitePackages) ||
                   tasks.All(p => !p.IsFaulted && p.Result);
        }
Example #23
0
        public bool IsUserConsentGranted()
        {
            var packageRestoreConsent = new PackageRestoreConsent(_settings);

            return(packageRestoreConsent.IsGranted);
        }