public void settings_provider_can_persist_list()
        {
            // arrange
            var settings = new TestSettings { List = new List<string>{"Testing", "Testing2"} };
            var settingDescriptor = new SettingsProvider.SettingDescriptor(typeof(TestSettings).GetProperty("List"));
            var key = SettingsProvider.GetKey<TestSettings>(settingDescriptor);

            // act
            settingsSaver.SaveSettings(settings);

            // assert
            Assert.Equal("[\"Testing\",\"Testing2\"]", backingStore[key]);
        }
        public void settings_provider_can_persist_int()
        {
            // arrange
            var settings = new TestSettings { TestProp2 = 123 };
            var settingDescriptor = new SettingsProvider.SettingDescriptor(typeof(TestSettings).GetProperty("TestProp2"));
            var key = SettingsProvider.GetKey<TestSettings>(settingDescriptor);

            // act
            settingsSaver.SaveSettings(settings);

            // assert
            Assert.Equal(settings.TestProp2, Convert.ToInt32(backingStore[key]));
        }
        public void settings_provider_can_persist_string()
        {
            // arrange
            var settings = new TestSettings { TestProp1 = "foo" };
            var settingDescriptor = new SettingsProvider.SettingDescriptor(typeof(TestSettings).GetProperty("TestProp1"));
            var key = SettingsProvider.GetKey<TestSettings>(settingDescriptor);

            // act
            settingsSaver.SaveSettings(settings);

            // assert
            Assert.Equal(settings.TestProp1, backingStore[key]);
        }
        public void settings_provider_can_persist_enum()
        {
            // arrange
            var settings = new TestSettings { SomeEnum = MyEnum.Value1 };
            var settingDescriptor = new SettingsProvider.SettingDescriptor(typeof(TestSettings).GetProperty("SomeEnum"));
            var key = SettingsProvider.GetKey<TestSettings>(settingDescriptor);

            // act
            settingsSaver.SaveSettings(settings);

            // assert
            Assert.Equal(Enum.GetName(typeof(MyEnum), settings.SomeEnum), backingStore[key]);
        }
        public void settings_provider_can_persist_nullable_datetime()
        {
            // arrange
            var firstRun = DateTime.Now;
            var settings = new TestSettings { FirstRun = firstRun };
            var settingDescriptor = new SettingsProvider.SettingDescriptor(typeof(TestSettings).GetProperty("FirstRun"));
            var key = SettingsProvider.GetKey<TestSettings>(settingDescriptor);

            // act
            settingsSaver.SaveSettings(settings);

            // assert
            Assert.Equal(firstRun.ToString(CultureInfo.InvariantCulture), backingStore[key]);
        }