Inheritance: System.Configuration.ApplicationSettingsBase
        public void TestSettings1_SetPropertyCancel()
        {
            TestSettings1 settings         = new TestSettings1();
            bool          setting_changing = false;
            bool          setting_changed  = false;

            settings.SettingChanging += delegate(object sender, SettingChangingEventArgs e) {
                setting_changing = true;
                Assert.AreEqual("Username", e.SettingName, "A1");
                Assert.AreEqual("toshok", e.NewValue, "A2");
                Assert.AreEqual("TestSettings1", e.SettingKey, "A3");
                Assert.AreEqual(settings.GetType().FullName, e.SettingClass, "A4");
                e.Cancel = true;
            };

            settings.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e) {
                setting_changed = true;
                Assert.Fail("shouldn't reach here.", "A5");
            };

            settings.Username = "******";

            Assert.IsTrue(setting_changing, "A6");
            Assert.IsFalse(setting_changed, "A7");

            Assert.AreEqual("root", settings.Username, "A8");
        }
        public void TestSettings1_SetPropertyReset()
        {
            TestSettings1 settings = new TestSettings1();

            settings.Username = "******";

            Assert.AreEqual("toshok", settings.Username, "A1");

            settings.Reset();

            Assert.AreEqual("root", settings.Username, "A2");
        }
        public void TestSettings1_Provider()
        {
            TestSettings1 settings = new TestSettings1();

            /* since we didn't specify a provider for any
             * of them, they should all use the
             * LocalFileSettingsProvider */
            foreach (SettingsProperty prop in settings.Properties)
            {
                Assert.AreEqual(typeof(LocalFileSettingsProvider), prop.Provider.GetType(), "A1");
                Console.WriteLine("'{0}': '{1}'", prop.Provider.Name, prop.Provider.ApplicationName);
            }
        }
        public void TestSettings1_SettingsLoaded()
        {
            TestSettings1    settings        = new TestSettings1();
            bool             settings_loaded = false;
            SettingsProvider loaded_provider = null;

            settings.SettingsLoaded += delegate(object sender, SettingsLoadedEventArgs e) {
                settings_loaded = true;
                loaded_provider = e.Provider;
            };

            Assert.AreEqual("root", settings.Username, "A1");
            Assert.IsTrue(settings_loaded, "A2");
            Assert.AreEqual(loaded_provider, settings.Properties ["Username"].Provider, "A3");
        }
        public void TestSettings1_Properties()
        {
            TestSettings1 settings = new TestSettings1();

            IEnumerator props = settings.Properties.GetEnumerator();

            Assert.IsNotNull(props, "A1");

            Assert.IsTrue(props.MoveNext(), "A2");
            Assert.AreEqual("Address", ((SettingsProperty)props.Current).Name, "A3");

            Assert.IsTrue(props.MoveNext(), "A4");
            Assert.AreEqual("Username", ((SettingsProperty)props.Current).Name, "A5");

            Assert.AreEqual("root", settings.Username, "A6");
            Assert.AreEqual("8 Cambridge Center", settings.Address, "A7");
        }
		public void TestSettings1_SetPropertyReset ()
		{
			TestSettings1 settings = new TestSettings1 ();

			settings.Username = "******";

			Assert.AreEqual ("toshok", settings.Username, "A1");

			settings.Reset ();

			Assert.AreEqual ("root", settings.Username, "A2");
		}
		public void TestSettings1_SettingsLoaded ()
		{
			TestSettings1 settings = new TestSettings1 ();
			bool settings_loaded = false;
			SettingsProvider loaded_provider = null;

			settings.SettingsLoaded += delegate (object sender, SettingsLoadedEventArgs e) {
				settings_loaded = true;
				loaded_provider = e.Provider;
			};

			Assert.AreEqual ("root", settings.Username, "A1");
			Assert.IsTrue (settings_loaded, "A2");
			Assert.AreEqual (loaded_provider, settings.Properties ["Username"].Provider, "A3");
		}
		public void TestSettings1_SetPropertyCancel ()
		{
			TestSettings1 settings = new TestSettings1 ();
			bool setting_changing = false;
			bool setting_changed = false;

			settings.SettingChanging += delegate (object sender, SettingChangingEventArgs e) {
				setting_changing = true;
				Assert.AreEqual ("Username", e.SettingName, "A1");
				Assert.AreEqual ("toshok", e.NewValue, "A2");
				Assert.AreEqual ("TestSettings1", e.SettingKey, "A3");
				Assert.AreEqual (settings.GetType().FullName, e.SettingClass, "A4");
				e.Cancel = true;
			};

			settings.PropertyChanged += delegate (object sender, PropertyChangedEventArgs e) {
				setting_changed = true;
				Assert.Fail ("shouldn't reach here.", "A5");
			};

			settings.Username = "******";

			Assert.IsTrue (setting_changing, "A6");
			Assert.IsFalse (setting_changed, "A7");

			Assert.AreEqual ("root", settings.Username, "A8");
		}
		public void TestSettings1_Provider ()
		{
			TestSettings1 settings = new TestSettings1 ();

			/* since we didn't specify a provider for any
			 * of them, they should all use the
			 * LocalFileSettingsProvider */
			foreach (SettingsProperty prop in settings.Properties) {
				Assert.AreEqual (typeof (LocalFileSettingsProvider), prop.Provider.GetType(), "A1");
				Console.WriteLine ("'{0}': '{1}'", prop.Provider.Name, prop.Provider.ApplicationName);
			}
		}
		public void TestSettings1_Properties ()
		{
			TestSettings1 settings = new TestSettings1 ();

			IEnumerator props = settings.Properties.GetEnumerator();
			Assert.IsNotNull (props, "A1");

			Assert.IsTrue (props.MoveNext(), "A4");
			Assert.AreEqual ("Address", ((SettingsProperty)props.Current).Name, "A5");
			
			Assert.IsTrue (props.MoveNext(), "A2");
			Assert.AreEqual ("Username", ((SettingsProperty)props.Current).Name, "A3");

			Assert.AreEqual ("root", settings.Username, "A6");
			Assert.AreEqual ("8 Cambridge Center", settings.Address, "A7");
		}