public void VerifyThatCorruptedConfigRestored()
        {
            _settings.SetValue("old", "value");
            _settings.Remove("old");
            var expectedLines  = File.ReadAllLines(DefaultApplicationSettings.FilePath);
            var corruptedLines = new string[expectedLines.Length - 2];

            Array.Copy(expectedLines, 0, corruptedLines, 0, corruptedLines.Length);
            File.WriteAllLines(DefaultApplicationSettings.FilePath, corruptedLines);
            _settings = new DefaultApplicationSettings();
            _settings.SetValue("old", "value");
            _settings.Remove("old");
            var actualLines = File.ReadAllLines(DefaultApplicationSettings.FilePath);

            Assert.Equal(expectedLines, actualLines);
        }
        public void VerifyMigration()
        {
            // Set a value.
            _settings.SetValue("old", "value");

            // Move file back to old location to test migration.
            var oldLocation = typeof(DefaultApplicationSettings).Assembly.Location;
            var oldPath     = Path.Combine(Path.GetDirectoryName(oldLocation), "AppCenter.config");

            File.Move(DefaultApplicationSettings.FilePath, oldPath);

            // Migrate.
            _settings = new DefaultApplicationSettings();

            // Check.
            Assert.Equal("value", _settings.GetValue <string>("old"));
        }
        public void VerifyMigrationSkippedWhenNewFileExists()
        {
            // Set a value.
            _settings.SetValue("key", "oldValue");

            // Move file back to old location to test migration.
            var oldLocation = typeof(DefaultApplicationSettings).Assembly.Location;
            var oldPath     = Path.Combine(Path.GetDirectoryName(oldLocation), "AppCenter.config");

            File.Copy(DefaultApplicationSettings.FilePath, oldPath);
            _settings.SetValue("key", "newValue");

            // Migrate.
            _settings = new DefaultApplicationSettings();

            // Check migration didn't happen.
            Assert.Equal("newValue", _settings.GetValue <string>("key"));
        }
 public ApplicationSettingsTest()
 {
     _settings = new DefaultApplicationSettings();
 }