public void SettingsSetSettingChangeNoNotification()
        {
            IMutableAmbientSettingsSet settingsSet = new BasicAmbientSettingsSet(nameof(SettingsSetSettingChangeNoNotification));
            string testSettingKey = nameof(SettingsSetSettingChangeNoNotification);
            string initialValue   = "initialValue";
            SettingsSetSetting <string> testSetting = new SettingsSetSetting <string>(settingsSet, testSettingKey, "", s => s, initialValue);

            Assert.AreEqual(initialValue, testSetting.Value);
            string secondValue = "change1";

            settingsSet.ChangeSetting(testSettingKey, secondValue);
            Assert.AreEqual(secondValue, testSetting.Value);
        }
 public void NoAmbientSetting()
 {
     using (ScopedLocalServiceOverride <IAmbientSettingsSet> localOverrideTest = new ScopedLocalServiceOverride <IAmbientSettingsSet>(null))
     {
         AmbientSetting <int> value;
         value = new AmbientSetting <int>("int-setting", "", s => string.IsNullOrEmpty(s) ? 0 : Int32.Parse(s));
         Assert.AreEqual(0, value.Value);
         value = new AmbientSetting <int>("int-setting-2", "", s => Int32.Parse(s), "1");
         Assert.AreEqual(1, value.Value);
         value = new AmbientSetting <int>("int-setting-4", "", s => Int32.Parse(s), "-1");
         Assert.AreEqual(-1, value.Value);
         SettingsSetSetting <int> settingsSetSetting = new SettingsSetSetting <int>(_SettingsSet, nameof(NoAmbientSetting) + "4", "", s => Int32.Parse(s), "4");
         Assert.AreEqual(4, settingsSetSetting.Value);
     }
 }
        private WeakReference <SettingsSetSetting <string> > FinalizableSetting(string testSettingKey, IMutableAmbientSettingsSet settingsSet)
        {
            bool   valueChanged = false;
            string value        = null;
            SettingsSetSetting <string> temporarySetting    = new SettingsSetSetting <string>(settingsSet, testSettingKey, "", s => { valueChanged = true; value = s; return(s); }, nameof(SettingsGarbageCollection) + "-InitialValue");
            WeakReference <SettingsSetSetting <string> > wr = new WeakReference <SettingsSetSetting <string> >(temporarySetting);

            Assert.AreEqual(nameof(SettingsGarbageCollection) + "-InitialValue", value);
            // change the setting to be sure we are actually hooked into the settings set's notification event
            settingsSet.ChangeSetting(testSettingKey, nameof(SettingsGarbageCollection) + "-ValueChanged");
            Assert.AreEqual(nameof(SettingsGarbageCollection) + "-ValueChanged", temporarySetting.Value);
            Assert.IsTrue(valueChanged);
            Assert.AreEqual(nameof(SettingsGarbageCollection) + "-ValueChanged", value);
            return(wr);
        }
        public void SettingsSetSettingNullConvert()
        {
            IMutableAmbientSettingsSet settingsSet = new BasicAmbientSettingsSet(nameof(SettingsSetSettingNullConvert));
            string testSettingKey = nameof(SettingsSetSettingNullConvert);
            string initialValue   = "initialValue";
            string secondValue    = "change1";
            SettingsSetSetting <string> testSetting = new SettingsSetSetting <string>(settingsSet, testSettingKey, "", null, initialValue);

            Assert.AreEqual(initialValue, testSetting.Value);
            settingsSet.ChangeSetting(testSettingKey, secondValue);
            Assert.AreEqual(secondValue, testSetting.Value);
            settingsSet.ChangeSetting(testSettingKey, initialValue);
            Assert.AreEqual(initialValue, testSetting.Value);
            testSetting = new SettingsSetSetting <string>(settingsSet, testSettingKey, "", initialValue, null);
            Assert.AreEqual(initialValue, testSetting.Value);
            settingsSet.ChangeSetting(testSettingKey, secondValue);
            Assert.AreEqual(secondValue, testSetting.Value);
            settingsSet.ChangeSetting(testSettingKey, initialValue);
            Assert.AreEqual(initialValue, testSetting.Value);
        }