public void ModifiedObjectsAreSerialized_Bug15818()
        {
            var settings = new Bug15818Settings2
            {
                Text     = "foo",
                MyObject = new Bug15818Class {
                    Name = "Some Name", Value = 15818
                }
            };

            settings.Save();

            // Modify the value of the object - bug #15818
            settings.Text           = "bla";
            settings.MyObject.Name  = "xyz";
            settings.MyObject.Value = -1;
            settings.Save();

            // Verify that the new values got saved
            var settings2 = new Bug15818Settings2();

            Assert.AreEqual("bla", settings2.Text);
            Assert.IsNotNull(settings2.MyObject);
            Assert.AreEqual("xyz", settings2.MyObject.Name);
            Assert.AreEqual(-1, settings2.MyObject.Value);
        }
        public void Reset_FiresPropChangedOnly_Bug15818()
        {
            bool propChangedCalled    = false;
            bool settingsLoadedCalled = false;
            bool settingsSavingCalled = false;
            var  settings             = new Bug15818Settings2();

            settings.PropertyChanged += (sender, e) => { propChangedCalled = true; };
            settings.SettingsLoaded  += (sender, e) => { settingsLoadedCalled = true; };
            settings.SettingsSaving  += (sender, e) => { settingsSavingCalled = true; };

            settings.Reset();

            Assert.IsTrue(propChangedCalled, "#1");
            Assert.IsFalse(settingsLoadedCalled, "#2");
            Assert.IsFalse(settingsSavingCalled, "#3");
        }
        public void CustomClass_Roundtrip()
        {
            var settings = new Bug15818Settings2
            {
                Text     = "foo",
                MyObject = new Bug15818Class {
                    Name = "Some Name", Value = 15818
                }
            };

            settings.Save();

            var settings2 = new Bug15818Settings2();

            Assert.AreEqual("foo", settings2.Text);
            Assert.IsNotNull(settings2.MyObject);
            Assert.AreEqual("Some Name", settings2.MyObject.Name);
            Assert.AreEqual(15818, settings2.MyObject.Value);
        }