Exemple #1
0
        private void TestWriteNull_Xml(Type settingsClass)
        {
            SystemConfigurationHelper.GetExeConfiguration().RemoveSettingsValues(settingsClass);

            try
            {
                var values = GetExeConfiguration().GetSettingsValues(settingsClass);
                Assert.AreEqual(0, values.Count);

                values = new Dictionary <string, string>();
                values[LocalXmlSettingsBase.PropertyApp] = null;

                SystemConfigurationHelper.GetExeConfiguration().PutSettingsValues(settingsClass, values);
                values = GetExeConfiguration().GetSettingsValues(settingsClass);
                Assert.AreEqual(0, values.Count);

                LocalXmlSettingsBase settings   = (LocalXmlSettingsBase)ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);
                XmlDocument          defaultDoc = new XmlDocument();
                defaultDoc.LoadXml(LocalXmlSettingsBase.DefaultValueApp);
                Assert.AreEqual(defaultDoc.DocumentElement.OuterXml, settings.App.DocumentElement.OuterXml);
            }
            finally
            {
                SystemConfigurationHelper.GetExeConfiguration().RemoveSettingsValues(settingsClass);
            }
        }
Exemple #2
0
        private static void ValidateStoredValues(Type type, MigrationScope migrationScope, SettingValue expectedValue)
        {
            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(type);

            foreach (SettingsProperty property in settings.Properties)
            {
                string expected = CreateSettingValue(property, migrationScope, expectedValue);
                if (migrationScope == MigrationScope.User)
                {
                    if (SettingsPropertyExtensions.IsAppScoped(property))
                    {
                        continue;
                    }

                    string actual = (string)settings[property.Name];
                    Assert.AreEqual(expected, actual);
                }
                else
                {
                    if (SettingsPropertyExtensions.IsAppScoped(property))
                    {
                        string actual = (string)settings[property.Name];
                        Assert.AreEqual(expected, actual);
                    }

                    string shared = (string)ApplicationSettingsExtensions.GetSharedPropertyValue(settings, property.Name);
                    Assert.AreEqual(expected, shared);
                }
            }
        }
Exemple #3
0
        private void TestWriteEmptyString_String(Type settingsClass)
        {
            var configuration = SystemConfigurationHelper.GetExeConfiguration();

            var values = new Dictionary <string, string>();

            values[MixedScopeSettingsBase.PropertyApp1] = "Test1";
            values[MixedScopeSettingsBase.PropertyApp2] = "Test2";

            configuration.PutSettingsValues(settingsClass, values);
            values = GetExeConfiguration().GetSettingsValues(settingsClass);
            Assert.AreEqual(2, values.Count);
            Assert.AreEqual("Test1", values[MixedScopeSettingsBase.PropertyApp1]);
            Assert.AreEqual("Test2", values[MixedScopeSettingsBase.PropertyApp2]);

            values = new Dictionary <string, string>();
            values[MixedScopeSettingsBase.PropertyApp1] = "";
            values[MixedScopeSettingsBase.PropertyApp2] = "";

            configuration.PutSettingsValues(settingsClass, values);
            values = GetExeConfiguration().GetSettingsValues(settingsClass);
            Assert.AreEqual(2, values.Count);
            Assert.AreEqual("", values[MixedScopeSettingsBase.PropertyApp1]);
            Assert.AreEqual("", values[MixedScopeSettingsBase.PropertyApp2]);

            //For string values, empty string means empty string.
            var settings = (MixedScopeSettingsBase)ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            Assert.AreEqual("", settings.App1);
            Assert.AreEqual("", settings.App2);
        }
Exemple #4
0
        private void TestWriteNull_String(Type settingsClass)
        {
            var configuration = SystemConfigurationHelper.GetExeConfiguration();

            var values = new Dictionary <string, string>();

            values[MixedScopeSettingsBase.PropertyApp1] = "Test1";
            values[MixedScopeSettingsBase.PropertyApp2] = "Test2";

            configuration.PutSettingsValues(settingsClass, values);
            values = GetExeConfiguration().GetSettingsValues(settingsClass);
            Assert.AreEqual(2, values.Count);
            Assert.AreEqual("Test1", values[MixedScopeSettingsBase.PropertyApp1]);
            Assert.AreEqual("Test2", values[MixedScopeSettingsBase.PropertyApp2]);

            values = new Dictionary <string, string>();
            values[MixedScopeSettingsBase.PropertyApp1] = null;
            values[MixedScopeSettingsBase.PropertyApp2] = null;

            //writing null essentially means to reset it to the default, which is equivalent to removing it.
            configuration.PutSettingsValues(settingsClass, values);
            values = GetExeConfiguration().GetSettingsValues(settingsClass);
            Assert.AreEqual(0, values.Count);

            var settings = (MixedScopeSettingsBase)ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            Assert.AreEqual(MixedScopeSettingsBase.PropertyApp1, settings.App1);
            Assert.AreEqual(MixedScopeSettingsBase.PropertyApp2, settings.App2);
        }
        public void TestWriteEmptyString_String()
        {
            RemoveSettings();
            var configuration = SystemConfigurationHelper.GetExeConfiguration();

            var values = new Dictionary <string, string>();

            values[LocalMixedScopeSettings.PropertyApp1] = "Test1";
            values[LocalMixedScopeSettings.PropertyApp2] = "Test2";

            SystemConfigurationHelper.PutSettingsValues(configuration, _settingsClass, values);
            values = SystemConfigurationHelper.GetSettingsValues(GetExeConfiguration(), _settingsClass);
            Assert.AreEqual(2, values.Count);
            Assert.AreEqual("Test1", values[LocalMixedScopeSettings.PropertyApp1]);
            Assert.AreEqual("Test2", values[LocalMixedScopeSettings.PropertyApp2]);

            values = new Dictionary <string, string>();
            values[LocalMixedScopeSettings.PropertyApp1] = "";
            values[LocalMixedScopeSettings.PropertyApp2] = "";

            SystemConfigurationHelper.PutSettingsValues(configuration, _settingsClass, values);
            values = SystemConfigurationHelper.GetSettingsValues(GetExeConfiguration(), _settingsClass);
            Assert.AreEqual(2, values.Count);
            Assert.AreEqual("", values[LocalMixedScopeSettings.PropertyApp1]);
            Assert.AreEqual("", values[LocalMixedScopeSettings.PropertyApp2]);

            //For string values, empty string means empty string.
            var settings = (LocalMixedScopeSettings)ApplicationSettingsHelper.GetSettingsClassInstance(_settingsClass);

            Assert.AreEqual("", settings.App1);
            Assert.AreEqual("", settings.App2);
        }
        public void TestWriteEmptyString_Xml()
        {
            Type settingsClass = typeof(LocalXmlSettings);

            SystemConfigurationHelper.RemoveSettingsValues(SystemConfigurationHelper.GetExeConfiguration(), settingsClass);

            try
            {
                var values = SystemConfigurationHelper.GetSettingsValues(GetExeConfiguration(), settingsClass);
                Assert.AreEqual(0, values.Count);

                values = new Dictionary <string, string>();
                values[LocalXmlSettings.PropertyApp] = "";

                SystemConfigurationHelper.PutSettingsValues(SystemConfigurationHelper.GetExeConfiguration(), settingsClass, values);
                values = SystemConfigurationHelper.GetSettingsValues(GetExeConfiguration(), settingsClass);
                Assert.AreEqual(1, values.Count);
                Assert.AreEqual("", values[LocalXmlSettings.PropertyApp]);

                //For xml values, empty string means "default".
                LocalXmlSettings settings   = (LocalXmlSettings)ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);
                XmlDocument      defaultDoc = new XmlDocument();
                defaultDoc.LoadXml(LocalXmlSettings.DefaultValueApp);
                Assert.AreEqual(defaultDoc.DocumentElement.OuterXml, settings.App.DocumentElement.OuterXml);
            }
            finally
            {
                SystemConfigurationHelper.RemoveSettingsValues(SystemConfigurationHelper.GetExeConfiguration(), settingsClass);
            }
        }
        public void TestWriteNull_String()
        {
            RemoveSettings();
            var configuration = SystemConfigurationHelper.GetExeConfiguration();

            var values = new Dictionary <string, string>();

            values[LocalMixedScopeSettings.PropertyApp1] = "Test1";
            values[LocalMixedScopeSettings.PropertyApp2] = "Test2";

            SystemConfigurationHelper.PutSettingsValues(configuration, _settingsClass, values);
            values = SystemConfigurationHelper.GetSettingsValues(GetExeConfiguration(), _settingsClass);
            Assert.AreEqual(2, values.Count);
            Assert.AreEqual("Test1", values[LocalMixedScopeSettings.PropertyApp1]);
            Assert.AreEqual("Test2", values[LocalMixedScopeSettings.PropertyApp2]);

            values = new Dictionary <string, string>();
            values[LocalMixedScopeSettings.PropertyApp1] = null;
            values[LocalMixedScopeSettings.PropertyApp2] = null;

            //writing null essentially means to reset it to the default, which is equivalent to removing it.
            SystemConfigurationHelper.PutSettingsValues(configuration, _settingsClass, values);
            values = SystemConfigurationHelper.GetSettingsValues(GetExeConfiguration(), _settingsClass);
            Assert.AreEqual(0, values.Count);

            var settings = (LocalMixedScopeSettings)ApplicationSettingsHelper.GetSettingsClassInstance(_settingsClass);

            Assert.AreEqual(LocalMixedScopeSettings.PropertyApp1, settings.App1);
            Assert.AreEqual(LocalMixedScopeSettings.PropertyApp2, settings.App2);
        }
Exemple #8
0
        public void TestGetPreviousSharedValues_Exists()
        {
            ResetAllSettingsClasses();

            string path     = Path.GetDirectoryName(ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).FilePath);
            string fileName = String.Format("{0}{1}TestPrevious.exe.config", path, System.IO.Path.DirectorySeparatorChar);

            TestConfigResourceToFile(fileName);

            try
            {
                var settings = ApplicationSettingsHelper.GetSettingsClassInstance(_settingsClass);
                settings.Reload();
                foreach (SettingsProperty property in settings.Properties)
                {
                    var actual   = ApplicationSettingsExtensions.GetPreviousSharedPropertyValue(settings, property.Name, fileName);
                    var expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Previous);
                    Assert.AreEqual(expected, actual);
                }
            }
            finally
            {
                File.Delete(fileName);
            }
        }
Exemple #9
0
        public void TestReadStringSettings()
        {
            Type settingsClass = typeof(LocalMixedScopeSettings);
            var  settings      = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            ApplicationSettingsExtensions.SetSharedPropertyValue(settings, LocalMixedScopeSettings.PropertyApp1, "TestApp1");
            ApplicationSettingsExtensions.SetSharedPropertyValue(settings, LocalMixedScopeSettings.PropertyApp2, "TestApp2");
            ApplicationSettingsExtensions.SetSharedPropertyValue(settings, LocalMixedScopeSettings.PropertyUser1, "TestUser1");
            ApplicationSettingsExtensions.SetSharedPropertyValue(settings, LocalMixedScopeSettings.PropertyUser2, "TestUser2");

            var reader = new ConfigurationFileReader(SystemConfigurationHelper.GetExeConfiguration().FilePath);
            var path   = new ConfigurationSectionPath(typeof(LocalMixedScopeSettings), SettingScope.Application);
            var values = reader.GetSettingsValues(path);

            Assert.AreEqual(2, values.Count);
            Assert.AreEqual("TestApp1", values[LocalMixedScopeSettings.PropertyApp1]);
            Assert.AreEqual("TestApp2", values[LocalMixedScopeSettings.PropertyApp2]);

            path   = new ConfigurationSectionPath(typeof(LocalMixedScopeSettings), SettingScope.User);
            values = reader.GetSettingsValues(path);
            Assert.AreEqual(2, values.Count);
            Assert.AreEqual("TestUser1", values[LocalMixedScopeSettings.PropertyUser1]);
            Assert.AreEqual("TestUser2", values[LocalMixedScopeSettings.PropertyUser2]);

            SystemConfigurationHelper.RemoveSettingsValues(SystemConfigurationHelper.GetExeConfiguration(), settingsClass);
        }
        public void TestReadStringSettings(Type localSettingsClass)
        {
            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(localSettingsClass);

            settings.SetSharedPropertyValue(MixedScopeSettingsBase.PropertyApp1, "TestApp1");
            settings.SetSharedPropertyValue(MixedScopeSettingsBase.PropertyApp2, "TestApp2");
            settings.SetSharedPropertyValue(MixedScopeSettingsBase.PropertyUser1, "TestUser1");
            settings.SetSharedPropertyValue(MixedScopeSettingsBase.PropertyUser2, "TestUser2");

            var reader = new ConfigurationFileReader(SystemConfigurationHelper.GetExeConfiguration().FilePath);
            var path   = new ConfigurationSectionPath(localSettingsClass, SettingScope.Application);
            var values = reader.GetSettingsValues(path);

            Assert.AreEqual(2, values.Count);
            Assert.AreEqual("TestApp1", values[MixedScopeSettingsBase.PropertyApp1]);
            Assert.AreEqual("TestApp2", values[MixedScopeSettingsBase.PropertyApp2]);

            path   = new ConfigurationSectionPath(localSettingsClass, SettingScope.User);
            values = reader.GetSettingsValues(path);
            Assert.AreEqual(2, values.Count);
            Assert.AreEqual("TestUser1", values[MixedScopeSettingsBase.PropertyUser1]);
            Assert.AreEqual("TestUser2", values[MixedScopeSettingsBase.PropertyUser2]);

            SystemConfigurationHelper.GetExeConfiguration().RemoveSettingsValues(localSettingsClass);
        }
        public void TestSimpleUserSettingsMigration()
        {
            ResetUpgradeSettings();

            Type settingsClass = typeof(SimpleUserSettings);

            PopulateSimpleStore(settingsClass);
            Assert.IsTrue(SettingsMigrator.MigrateUserSettings(settingsClass));

            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            SettingsProperty property = settings.Properties[SimpleUserSettings.PropertyUser];
            string           expected = CreateSettingValue(property, MigrationScope.User, SettingValue.Previous);
            string           actual   = (string)settings[property.Name];

            Assert.AreEqual(expected, actual);

            expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Current);
            actual   = (string)ApplicationSettingsExtensions.GetSharedPropertyValue(settings, property.Name);
            Assert.AreEqual(expected, actual);

            expected = CreateSettingValue(property, MigrationScope.User, SettingValue.Previous);
            Assert.IsFalse(SettingsMigrator.MigrateUserSettings(settingsClass));
            actual = (string)settings[property.Name];
            Assert.AreEqual(expected, actual);

            expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Current);
            actual   = (string)ApplicationSettingsExtensions.GetSharedPropertyValue(settings, property.Name);
            Assert.AreEqual(expected, actual);
        }
        public void TestReadWriteValues_Xml()
        {
            Type settingsClass = typeof(LocalXmlSettings);

            SystemConfigurationHelper.RemoveSettingsValues(SystemConfigurationHelper.GetExeConfiguration(), settingsClass);

            try
            {
                var values = SystemConfigurationHelper.GetSettingsValues(GetExeConfiguration(), settingsClass);
                Assert.AreEqual(0, values.Count);

                values = new Dictionary <string, string>();
                values[LocalXmlSettings.PropertyUser] = LocalXmlSettings.DefaultValueUser;
                values[LocalXmlSettings.PropertyApp]  = LocalXmlSettings.DefaultValueApp;

                SystemConfigurationHelper.PutSettingsValues(SystemConfigurationHelper.GetExeConfiguration(), settingsClass, values);
                values = SystemConfigurationHelper.GetSettingsValues(GetExeConfiguration(), settingsClass);
                Assert.AreEqual(1, values.Count);

                LocalXmlSettings settings = (LocalXmlSettings)ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);
                Assert.IsNull(ApplicationSettingsExtensions.GetSharedPropertyValue(settings, LocalXmlSettings.PropertyUser));

                XmlDocument defaultDoc = new XmlDocument();
                defaultDoc.LoadXml(LocalXmlSettings.DefaultValueApp);
                Assert.AreEqual(defaultDoc.DocumentElement.OuterXml, settings.App.DocumentElement.OuterXml);
            }
            finally
            {
                SystemConfigurationHelper.RemoveSettingsValues(SystemConfigurationHelper.GetExeConfiguration(), settingsClass);
            }
        }
Exemple #13
0
        private void ValidateLocalMixedScopeSettingsValuesInConfig(System.Configuration.Configuration configuration, SettingValue settingValue)
        {
            Type settingsClass = typeof(LocalMixedScopeSettings);
            var  settings      = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            settings.Reload();

            SettingsProperty property = settings.Properties[LocalMixedScopeSettings.PropertyApp1];
            string           expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            string           actual   = (string)settings[property.Name];

            Assert.AreEqual(expected, actual);
            actual = (string)ApplicationSettingsExtensions.GetSharedPropertyValue(settings, property.Name);
            Assert.AreEqual(expected, actual);

            property = settings.Properties[LocalMixedScopeSettings.PropertyApp2];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = (string)settings[property.Name];
            Assert.AreEqual(expected, actual);
            actual = (string)ApplicationSettingsExtensions.GetSharedPropertyValue(settings, property.Name);
            Assert.AreEqual(expected, actual);

            property = settings.Properties[LocalMixedScopeSettings.PropertyUser1];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = (string)ApplicationSettingsExtensions.GetSharedPropertyValue(settings, property.Name);
            Assert.AreEqual(expected, actual);

            property = settings.Properties[LocalMixedScopeSettings.PropertyUser2];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = (string)ApplicationSettingsExtensions.GetSharedPropertyValue(settings, property.Name);
            Assert.AreEqual(expected, actual);

            var values = SystemConfigurationHelper.GetSettingsValues(configuration, settingsClass, SettingScope.Application);

            Assert.AreEqual(2, values.Count);
            property = settings.Properties[LocalMixedScopeSettings.PropertyApp1];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = values[property.Name];
            Assert.AreEqual(expected, actual);

            property = settings.Properties[LocalMixedScopeSettings.PropertyApp2];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = values[property.Name];
            Assert.AreEqual(expected, actual);

            values = SystemConfigurationHelper.GetSettingsValues(configuration, settingsClass, SettingScope.User);
            Assert.AreEqual(2, values.Count);
            property = settings.Properties[LocalMixedScopeSettings.PropertyUser1];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = values[property.Name];
            Assert.AreEqual(expected, actual);

            property = settings.Properties[LocalMixedScopeSettings.PropertyUser2];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = values[property.Name];
            Assert.AreEqual(expected, actual);
        }
 public static void ResetAll()
 {
     foreach (Type type in _testType.Assembly.GetTypes())
     {
         if (type.IsSubclassOf(_testType) && !type.IsAbstract)
         {
             ApplicationSettingsHelper.GetSettingsClassInstance(type).Reset();
         }
     }
 }
Exemple #15
0
        public void RunApplication(string[] args)
        {
            CommandLine commandLine = new CommandLine(args);

            foreach (SettingsGroupDescriptor group in SettingsGroupDescriptor.ListInstalledSettingsGroups(SettingsGroupFilter.LocalStorage))
            {
                Type type     = Type.GetType(group.AssemblyQualifiedTypeName, true);
                var  settings = ApplicationSettingsHelper.GetSettingsClassInstance(type);
                ApplicationSettingsExtensions.ImportSharedSettings(settings, commandLine.ConfigurationFilename);
            }
        }
Exemple #16
0
        private void TestGetPreviousSharedValues_NoneExist(Type settingsClass)
        {
            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            settings.Reload();
            foreach (SettingsProperty property in settings.Properties)
            {
                var previous = settings.GetPreviousSharedPropertyValue(property.Name, null);
                Assert.IsNull(previous);
            }
        }
Exemple #17
0
        public void TestGetPreviousSharedValues_NoneExist()
        {
            ResetAllSettingsClasses();

            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(_settingsClass);

            settings.Reload();
            foreach (SettingsProperty property in settings.Properties)
            {
                var previous = ApplicationSettingsExtensions.GetPreviousSharedPropertyValue(settings, property.Name, null);
                Assert.IsNull(previous);
            }
        }
        private static void TestMultipleSharedSettingsMigrated(Type mixedScopeSettingsClass)
        {
            if (!mixedScopeSettingsClass.IsSubclassOf(typeof(MixedScopeSettingsBase)))
            {
                throw new ArgumentException();
            }

            ResetSimpleStore();
            ResetAllSettingsClasses();

            PopulateSimpleStore(mixedScopeSettingsClass);

            SettingsMigrator.MigrateSharedSettings(mixedScopeSettingsClass, null);
            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(mixedScopeSettingsClass);

            SettingsProperty property = settings.Properties[MixedScopeSettingsBase.PropertyUser1];
            string           expected = CreateSettingValue(property, MigrationScope.User, SettingValue.Current);
            var actual = (string)settings[property.Name];

            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyUser2];
            expected = CreateSettingValue(property, MigrationScope.User, SettingValue.Current);
            actual   = (string)settings[property.Name];
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyApp1];
            expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Previous);
            actual   = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);
            actual = (string)settings[property.Name];
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyApp2];
            expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Previous);
            actual   = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);
            actual = (string)settings[property.Name];
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyUser1];
            expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Previous);
            actual   = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyUser2];
            expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Previous);
            actual   = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);
        }
        public void ReloadSettings()
        {
            try
            {
                Platform.Log(LogLevel.Info, "Forcing reload of MemoryManagementSettings.");

                var groups         = SettingsGroupDescriptor.ListInstalledSettingsGroups(SettingsGroupFilter.LocalStorage);
                var settingsGroups = groups.First(g => g.Name == "ClearCanvas.ImageViewer.Common.MemoryManagementSettings");
                var instance       = ApplicationSettingsHelper.GetSettingsClassInstance(Type.GetType(settingsGroups.AssemblyQualifiedTypeName));
                instance.Reload();
            }
            catch (Exception e)
            {
                ExceptionHandler.Report(e, Context.DesktopWindow);
            }
        }
        public void TestCustomUserSettingsMigration()
        {
            ResetSimpleStore();
            ResetAllSettingsClasses();

            Type settingsClass = typeof(CustomMigrationMixedScopeSettings);

            PopulateSimpleStore(settingsClass);

            SettingsMigrator.MigrateUserSettings(settingsClass);
            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            SettingsProperty property = settings.Properties[MixedScopeSettingsBase.PropertyUser1];
            string           expected = "CustomUser1";
            var actual = (string)settings[property.Name];

            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyUser2];
            expected = CreateSettingValue(property, MigrationScope.User, SettingValue.Previous);
            actual   = (string)settings[property.Name];
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyApp1];
            expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Current);
            actual   = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);
            actual = (string)settings[property.Name];
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyApp2];
            expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Current);
            actual   = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);
            actual = (string)settings[property.Name];
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyUser1];
            expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Current);
            actual   = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyUser2];
            expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Current);
            actual   = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);
        }
Exemple #21
0
        private void TestGetSharedSettings_NoneExist(Type settingsClass)
        {
            RemoveSettings(settingsClass);

            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            settings.Reload();

            foreach (SettingsProperty property in settings.Properties)
            {
                var shared = settings.GetSharedPropertyValue(property.Name);
                Assert.AreEqual(property.DefaultValue, shared);

                if (SettingsPropertyExtensions.IsAppScoped(property))
                {
                    Assert.AreEqual(property.DefaultValue, settings[property.Name]);
                }
            }
        }
        private static void TestMigrateXmlSettings(Type xmlSettingsClass)
        {
            if (!xmlSettingsClass.IsSubclassOf(typeof(LocalXmlSettingsBase)))
            {
                throw new ArgumentException();
            }

            var configuration = SystemConfigurationHelper.GetExeConfiguration();

            var settings = (LocalXmlSettingsBase)ApplicationSettingsHelper.GetSettingsClassInstance(xmlSettingsClass);
            var document = new XmlDocument();

            document.LoadXml((string)settings.Properties[LocalXmlSettingsBase.PropertyApp].DefaultValue);
            var node = document.SelectSingleNode("//test");

            node.InnerText = "CurrentApp";
            var values = new Dictionary <string, string>();

            values[LocalXmlSettingsBase.PropertyApp] = document.InnerXml;
            configuration.PutSettingsValues(xmlSettingsClass, values);

            string directory           = Path.GetDirectoryName(configuration.FilePath);
            string previousExeFilename = String.Format("{0}{1}Previous.exe.config", directory, Path.DirectorySeparatorChar);

            try
            {
                TestConfigResourceToFile(previousExeFilename);
                SettingsMigrator.MigrateSharedSettings(xmlSettingsClass, previousExeFilename);
                configuration = SystemConfigurationHelper.GetExeConfiguration();
                settings      = (LocalXmlSettingsBase)ApplicationSettingsHelper.GetSettingsClassInstance(xmlSettingsClass);
                settings.Reload();
                document = (XmlDocument)settings.GetSharedPropertyValue(LocalXmlSettingsBase.PropertyApp);
                Assert.AreEqual("PreviousApp", document.SelectSingleNode("//test").InnerXml);
                document = settings.App;
                Assert.AreEqual("PreviousApp", document.SelectSingleNode("//test").InnerXml);
            }
            finally
            {
                File.Delete(previousExeFilename);
                configuration.RemoveSettingsValues(xmlSettingsClass);
            }
        }
        public void TestNonMigratableSharedSettings()
        {
            ResetUpgradeSettings();

            Type settingsClass = typeof(NonMigratableSharedSettings);

            PopulateSimpleStore(settingsClass);

            Assert.IsFalse(SettingsMigrator.MigrateSharedSettings(settingsClass, null));
            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            SettingsProperty property = settings.Properties[NonMigratableSharedSettings.PropertyApp];
            string           expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Current);

            Assert.AreEqual(expected, settings[property.Name]);

            string current = (string)ApplicationSettingsExtensions.GetSharedPropertyValue(settings, property.Name);

            Assert.AreEqual(expected, current);
        }
Exemple #24
0
        private void TestGetSharedSettings_Exists(Type settingsClass)
        {
            RemoveSettings(settingsClass);

            SystemConfigurationHelperTests.WriteSharedValuesToConfig(settingsClass, SettingValue.Current);
            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            settings.Reload();

            foreach (SettingsProperty property in settings.Properties)
            {
                var    shared   = settings.GetSharedPropertyValue(property.Name);
                string expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Current);
                Assert.AreEqual(expected, shared);

                if (SettingsPropertyExtensions.IsAppScoped(property))
                {
                    Assert.AreEqual(expected, settings[property.Name]);
                }
            }
        }
Exemple #25
0
        public void TestUserDefaultSettingsMigrated()
        {
            ResetUpgradeSettings();

            Type settingsClass = typeof(SimpleUserSettings);

            PopulateSimpleStore(settingsClass);

            Assert.IsTrue(SettingsMigrator.MigrateSharedSettings(settingsClass, null));

            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            SettingsProperty property = settings.Properties[SimpleUserSettings.PropertyUser];
            string           expected = CreateSettingValue(property, MigrationScope.User, SettingValue.Current);

            Assert.AreEqual(expected, settings[property.Name]);

            expected = CreateSettingValue(property, MigrationScope.Shared, SettingValue.Previous);
            string current = (string)settings.GetSharedPropertyValue(property.Name);

            Assert.AreEqual(expected, current);
        }
Exemple #26
0
        private void TestSetSharedSettings(Type settingsClass)
        {
            if (!settingsClass.IsSubclassOf(typeof(MixedScopeSettingsBase)))
            {
                throw new ArgumentException();
            }

            RemoveSettings(settingsClass);
            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            Assert.AreEqual(MixedScopeSettingsBase.PropertyApp1, settings[MixedScopeSettingsBase.PropertyApp1]);
            Assert.AreEqual(MixedScopeSettingsBase.PropertyApp2, settings[MixedScopeSettingsBase.PropertyApp2]);
            Assert.AreEqual(MixedScopeSettingsBase.PropertyUser1, settings[MixedScopeSettingsBase.PropertyUser1]);
            Assert.AreEqual(MixedScopeSettingsBase.PropertyUser2, settings[MixedScopeSettingsBase.PropertyUser2]);

            settings.SetSharedPropertyValue(MixedScopeSettingsBase.PropertyApp1, "TestApp1");
            settings.SetSharedPropertyValue(MixedScopeSettingsBase.PropertyApp2, "TestApp2");
            settings.SetSharedPropertyValue(MixedScopeSettingsBase.PropertyUser1, "TestUser1");
            settings.SetSharedPropertyValue(MixedScopeSettingsBase.PropertyUser2, "TestUser2");

            //There is no default, so this is a new instance.
            settings = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            Assert.AreEqual("TestApp1", settings[MixedScopeSettingsBase.PropertyApp1]);
            Assert.AreEqual("TestApp2", settings[MixedScopeSettingsBase.PropertyApp2]);
            Assert.AreEqual("TestUser1", settings.GetSharedPropertyValue(MixedScopeSettingsBase.PropertyUser1));
            Assert.AreEqual("TestUser2", settings.GetSharedPropertyValue(MixedScopeSettingsBase.PropertyUser2));

/*
 *          //Just because ... test setting a user value.
 *          settings[MixedScopeSettings.PropertyUser1] = "TestUserblah";
 *          settings.Save();
 *
 *          settings = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);
 *          Assert.AreEqual("TestUserblah", settings[MixedScopeSettings.PropertyUser1]);
 *          Assert.AreEqual("TestUser1", settings.GetSharedPropertyValue(MixedScopeSettingsBase.PropertyUser1));
 *          settings.Reset();
 */
        }
Exemple #27
0
        public void TestReadXmlSettings()
        {
            Type settingsClass = typeof(LocalXmlSettings);
            var  settings      = ApplicationSettingsHelper.GetSettingsClassInstance(settingsClass);

            var         appValue    = @"<test><app/></test>";
            XmlDocument appDocument = new XmlDocument();

            appDocument.LoadXml(appValue);
            ApplicationSettingsExtensions.SetSharedPropertyValue(settings, LocalXmlSettings.PropertyApp, appDocument);

            var         userValue    = @"<test><user/></test>";
            XmlDocument userDocument = new XmlDocument();

            userDocument.LoadXml(userValue);
            ApplicationSettingsExtensions.SetSharedPropertyValue(settings, LocalXmlSettings.PropertyUser, userDocument);

            var reader = new ConfigurationFileReader(SystemConfigurationHelper.GetExeConfiguration().FilePath);
            var path   = new ConfigurationSectionPath(typeof(LocalXmlSettings), SettingScope.Application);
            var values = reader.GetSettingsValues(path);

            Assert.AreEqual(1, values.Count);

            XmlDocument testDocument = new XmlDocument();

            testDocument.LoadXml(values[LocalXmlSettings.PropertyApp]);
            Assert.AreEqual(appDocument.InnerXml, testDocument.InnerXml);

            path   = new ConfigurationSectionPath(typeof(LocalXmlSettings), SettingScope.User);
            values = reader.GetSettingsValues(path);
            Assert.AreEqual(1, values.Count);

            testDocument = new XmlDocument();
            testDocument.LoadXml(values[LocalXmlSettings.PropertyUser]);
            Assert.AreEqual(userDocument.InnerXml, testDocument.InnerXml);

            SystemConfigurationHelper.RemoveSettingsValues(SystemConfigurationHelper.GetExeConfiguration(), settingsClass);
        }
Exemple #28
0
        public static void PopulateSimpleStore(Type type)
        {
            ResetSimpleStore();
            TestApplicationSettingsBase.ResetAll();
            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(type);

            foreach (SettingsProperty property in settings.Properties)
            {
                var value = CreateSettingsPropertyValue(property, MigrationScope.User, SettingValue.Current);
                if (value != null)
                {
                    SimpleSettingsStore.Instance.CurrentUserValues.Add(value);
                }

                value = CreateSettingsPropertyValue(property, MigrationScope.User, SettingValue.Previous);
                if (value != null)
                {
                    SimpleSettingsStore.Instance.PreviousUserValues.Add(value);
                }

                value = CreateSettingsPropertyValue(property, MigrationScope.Shared, SettingValue.Current);
                if (value != null)
                {
                    SimpleSettingsStore.Instance.CurrentSharedValues.Add(value);
                }

                value = CreateSettingsPropertyValue(property, MigrationScope.Shared, SettingValue.Previous);
                if (value != null)
                {
                    SimpleSettingsStore.Instance.PreviousSharedValues.Add(value);
                }
            }

            ValidateStoredValues(type, MigrationScope.Shared, SettingValue.Current);
            ValidateStoredValues(type, MigrationScope.User, SettingValue.Current);
        }
        private static void ValidateLocalMixedScopeSettingsValuesInConfig(Type mixedScopeSettingsClass, System.Configuration.Configuration configuration, SettingValue settingValue)
        {
            if (!mixedScopeSettingsClass.IsSubclassOf(typeof(MixedScopeSettingsBase)))
            {
                throw new ArgumentException();
            }

            var settings = ApplicationSettingsHelper.GetSettingsClassInstance(mixedScopeSettingsClass);

            settings.Reload();

            SettingsProperty property = settings.Properties[MixedScopeSettingsBase.PropertyApp1];
            string           expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            var actual = (string)settings[property.Name];

            Assert.AreEqual(expected, actual);
            actual = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyApp2];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = (string)settings[property.Name];
            Assert.AreEqual(expected, actual);
            actual = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyUser1];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyUser2];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = (string)settings.GetSharedPropertyValue(property.Name);
            Assert.AreEqual(expected, actual);

            var values = configuration.GetSettingsValues(mixedScopeSettingsClass, SettingScope.Application);

            Assert.AreEqual(2, values.Count);
            property = settings.Properties[MixedScopeSettingsBase.PropertyApp1];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = values[property.Name];
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyApp2];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = values[property.Name];
            Assert.AreEqual(expected, actual);

            values = configuration.GetSettingsValues(mixedScopeSettingsClass, SettingScope.User);
            Assert.AreEqual(2, values.Count);
            property = settings.Properties[MixedScopeSettingsBase.PropertyUser1];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = values[property.Name];
            Assert.AreEqual(expected, actual);

            property = settings.Properties[MixedScopeSettingsBase.PropertyUser2];
            expected = CreateSettingValue(property, MigrationScope.Shared, settingValue);
            actual   = values[property.Name];
            Assert.AreEqual(expected, actual);
        }