// Author:
// Chris Toshok <toshok@ximian.com>
//
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2005, 2006 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-#define SPEW
+//#define SPEW
#if NET_2_0
}
}
+ class TestSettings4 : ApplicationSettingsBase {
+
+ public TestSettings4 ()
+ : base ("TestSettings4")
+ {
+ }
+
+ [ApplicationScopedSetting]
+ [DefaultSettingValue ("<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<ArrayOfString xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n <string>go</string>\r\n <string>mono</string>\r\n </ArrayOfString>")]
+ public StringCollection Values {
+ get { return (StringCollection) this ["Values"]; }
+ }
+ }
+
[TestFixture]
public class ApplicationSettingsBaseTest
{
}
[Test]
- [Category ("NotWorking")]
public void TestSettings2_Properties ()
{
+ // This test will fail when there are newer versions
+ // of the test assemblies - so conditionalize it in
+ // such cases.
+#if TARGET_JVM
+ string expected = "MonoTests.System.Configuration.ProviderPoker, System.Test, Version=0.0.0.0";
+#elif NET_4_5
+ string expected = "MonoTests.System.Configuration.ProviderPoker, System_test_net_4_5, Version=0.0.0.0";
+#elif NET_4_0
+ string expected = "MonoTests.System.Configuration.ProviderPoker, System_test_net_4_0, Version=0.0.0.0";
+#else
+ string expected = "MonoTests.System.Configuration.ProviderPoker, System_test_net_2_0, Version=0.0.0.0";
+#endif
+ Assert.AreEqual (expected, new SettingsProviderAttribute (typeof (ProviderPoker)).ProviderTypeName.Substring (0, expected.Length), "#1");
TestSettings2 settings = new TestSettings2 ();
/* should throw ConfigurationException */
get { return ((int)(this ["IntSetting"])); }
}
}
- }
+ [Test]
+ public void TestSettings4_StringCollection_DefaultSettingValue ()
+ {
+ TestSettings4 settings = new TestSettings4 ();
+ Assert.AreEqual (2, settings.Values.Count, "Count");
+ Assert.AreEqual ("go", settings.Values[0], "0");
+ Assert.AreEqual ("mono", settings.Values[1], "1");
+ }
+
+ [Test]
+ [Category ("NotWorking")]
+ public void Providers ()
+ {
+ Assert.AreEqual (0, new TestSettings1 ().Providers.Count);
+ }
+
+ class Bug532180 : ApplicationSettingsBase {
+ [UserScopedSetting]
+ [DefaultSettingValue("10")]
+ public int IntSetting {
+ get { return (int)this["IntSetting"]; }
+ set { this["IntSetting"] = value; }
+ }
+ }
+
+ [Test] // bug #532180
+ public void DefaultSettingValueAsWithReload()
+ {
+ Bug532180 settings = new Bug532180();
+ Assert.AreEqual (10, settings.IntSetting, "A1");
+ settings.IntSetting = 1;
+ Assert.AreEqual (1, settings.IntSetting, "A2");
+ settings.Reload ();
+ Assert.AreEqual (10, settings.IntSetting, "A3");
+ }
+
+ class Bug8592ConfHolder : ApplicationSettingsBase {
+ [UserScopedSetting]
+ public string TestKey1OnHolder {
+ get { return (string) this ["TestKey1OnHolder"] ?? ""; }
+ set { this ["TestKey1OnHolder"] = value; }
+ }
+ }
+
+ [Test]
+ public void TestBug8592BasicOperations ()
+ {
+ var holder = new Bug8592ConfHolder ();
+ holder.Reset ();
+ holder.Save ();
+ Assert.AreEqual ("", holder.TestKey1OnHolder);
+ holder.TestKey1OnHolder = "candy";
+ Assert.AreEqual ("candy", holder.TestKey1OnHolder);
+ holder.Reload ();
+ Assert.AreEqual ("", holder.TestKey1OnHolder);
+ holder.TestKey1OnHolder = "candy";
+ Assert.AreEqual ("candy", holder.TestKey1OnHolder);
+ holder.Save ();
+ Assert.AreEqual ("candy", holder.TestKey1OnHolder);
+ holder.Reload ();
+ Assert.AreEqual ("candy", holder.TestKey1OnHolder);
+ holder.Reset ();
+ Assert.AreEqual ("", holder.TestKey1OnHolder);
+ }
+
+ class Bug8533ConfHolder1 : ApplicationSettingsBase {
+ [UserScopedSetting]
+ public string TestKey1OnHolder1 {
+ get { return (string) this ["TestKey1OnHolder1"] ?? ""; }
+ set { this ["TestKey1OnHolder1"] = value; }
+ }
+
+ [UserScopedSetting]
+ public string TestKey1OnHolder2 {
+ get { return (string) this ["TestKey1OnHolder2"] ?? ""; }
+ set { this ["TestKey1OnHolder2"] = value; }
+ }
+
+ [UserScopedSetting]
+ public string TestKey {
+ get { return (string) this ["TestKey"] ?? ""; }
+ set { this ["TestKey"] = value; }
+ }
+ }
+
+ class Bug8533ConfHolder2 : ApplicationSettingsBase {
+ [UserScopedSetting]
+ public string TestKey1OnHolder2 {
+ get { return (string) this ["TestKey1OnHolder2"] ?? ""; }
+ set { this ["TestKey1OnHolder2"] = value; }
+ }
+
+ [UserScopedSetting]
+ public string TestKey {
+ get { return (string) this ["TestKey"] ?? ""; }
+ set { this ["TestKey"] = value; }
+ }
+ }
+
+ [Test]
+ public void TestBug8533ConfHandlerWronglyMixedUp ()
+ {
+ var holder1 = new Bug8533ConfHolder1 ();
+ var holder2 = new Bug8533ConfHolder2 ();
+ holder1.TestKey1OnHolder1 = "candy";
+ holder2.TestKey1OnHolder2 = "donut";
+ holder1.TestKey = "eclair";
+ holder1.Save ();
+ holder2.Save ();
+ holder1.Reload ();
+ holder2.Reload();
+ Assert.AreEqual ("", holder1.TestKey1OnHolder2);
+ Assert.AreEqual ("candy", holder1.TestKey1OnHolder1);
+ Assert.AreEqual ("donut", holder2.TestKey1OnHolder2);
+ Assert.AreEqual ("eclair", holder1.TestKey);
+ Assert.AreEqual ("", holder2.TestKey);
+ }
+ }
}
#endif