コード例 #1
0
        static void CheckForOldSettings()
        {
            var newSettingsPath = PackageSettingsRepository.GetSettingsPath(k_PackageName);

            // Do not overwrite new settings if they exist. VCS can restore old settings file after a successful upgrade,
            // which will already be in use. In that case, just leave the old settings alone.
            if (!File.Exists(newSettingsPath) && File.Exists(k_DeprecatedSettingsPath))
            {
                try
                {
                    var directory = Path.GetDirectoryName(newSettingsPath);

                    if (!Directory.Exists(directory))
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(newSettingsPath));
                    }

                    File.Move(k_DeprecatedSettingsPath, newSettingsPath);
                }
                catch (System.Exception e)
                {
                    Log.Info("Failed moving ProBuilder settings file to new path.\n{0}", e.ToString());
                }
            }
        }
        public void NewSettingsInstance_CreatesUserAndProjectSettings()
        {
            var expectedPath = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName);

            Assume.That(File.Exists(expectedPath), Is.False);

            var settings = new Settings(k_MultipleSettingFilesPackageName);

            settings.Save();

            Assert.That(File.Exists(expectedPath), Is.True);
        }
        public void NewSettingsInstance_SupportsMultipleProjectRepositories()
        {
            var expectedPathA = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, "FileA");
            var expectedPathB = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, "FileB");

            Assume.That(File.Exists(expectedPathA), Is.False);
            Assume.That(File.Exists(expectedPathB), Is.False);

            var settings = new Settings(new ISettingsRepository[]
            {
                new PackageSettingsRepository(k_MultipleSettingFilesPackageName, "FileA"),
                new PackageSettingsRepository(k_MultipleSettingFilesPackageName, "FileB")
            });

            settings.Save();

            Assert.That(File.Exists(expectedPathA), Is.True);
            Assert.That(File.Exists(expectedPathB), Is.True);
        }
        public void MultipleNamedProjectSettings_StoreSettingsSeparately()
        {
            var expectedPathA = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, "FileA");
            var expectedPathB = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, "FileB");

            Assume.That(File.Exists(expectedPathA), Is.False);
            Assume.That(File.Exists(expectedPathB), Is.False);

            var settings = new Settings(new ISettingsRepository[]
            {
                new PackageSettingsRepository(k_MultipleSettingFilesPackageName, "FileA"),
                new PackageSettingsRepository(k_MultipleSettingFilesPackageName, "FileB")
            });

            settings.Set <int>("value_a", 32, "FileA");
            settings.Set <int>("value_a", 64, "FileB");

            Assert.That(settings.Get <int>("value_a", "FileA"), Is.EqualTo(32));
            Assert.That(settings.Get <int>("value_a", "FileB"), Is.EqualTo(64));
        }
        public void Teardown()
        {
            var expectedPath  = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName);
            var expectedPathA = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, k_SettingsFileA);
            var expectedPathB = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, k_SettingsFileB);

            if (File.Exists(expectedPath))
            {
                File.Delete(expectedPath);
            }

            if (File.Exists(expectedPathA))
            {
                File.Delete(expectedPathA);
            }

            if (File.Exists(expectedPathB))
            {
                File.Delete(expectedPathB);
            }
        }