Esempio n. 1
0
        public void EventsTest()
        {
            // prepare
            var settings = new TestSettings(1, JsonSettingsSerializer.Default);
            var settingChangedEventArgs  = (SettingChangedEventArgs?)null;
            var settingChangingEventArgs = (SettingChangingEventArgs?)null;

            settings.SettingChanged  += (_, e) => settingChangedEventArgs = e;
            settings.SettingChanging += (_, e) => settingChangingEventArgs = e;

            // reset value
            settings.ResetValue(TestSettings.Int32Key);
            Assert.IsNull(settingChangingEventArgs, "Should not receive SettingChanging event.");
            Assert.IsNull(settingChangedEventArgs, "Should not receive SettingChanged event.");

            // modify value
            var testValue = TestSettings.TestValues[TestSettings.Int32Key];

            settings.SetValue(TestSettings.Int32Key, testValue);
            Assert.IsNotNull(settingChangingEventArgs, "Should receive SettingsChanging event.");
            Assert.AreEqual(TestSettings.Int32Key, settingChangingEventArgs?.Key, "Key reported by SettingChanging is incorrect.");
            Assert.AreEqual(TestSettings.Int32Key.DefaultValue, settingChangingEventArgs?.Value, "Current value reported by SettingChanging is incorrect.");
            Assert.AreEqual(testValue, settingChangingEventArgs?.NewValue, "New value reported by SettingChanging is incorrect.");
            Assert.IsNotNull(settingChangedEventArgs, "Should receive SettingChanged event.");
            Assert.AreEqual(TestSettings.Int32Key.DefaultValue, settingChangedEventArgs?.PreviousValue, "Previous value reported by SettingChanged is incorrect.");
            Assert.AreEqual(testValue, settingChangedEventArgs?.Value, "Current value reported by SettingChanged is incorrect.");

            // modify by same value
            settingChangingEventArgs = null;
            settingChangedEventArgs  = null;
            settings.SetValue(TestSettings.Int32Key, testValue);
            Assert.IsNull(settingChangingEventArgs, "Should not receive SettingChanging event.");
            Assert.IsNull(settingChangedEventArgs, "Should not receive SettingChanged event.");
        }