2007-05-28 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Mon, 28 May 2007 12:55:15 +0000 (12:55 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Mon, 28 May 2007 12:55:15 +0000 (12:55 -0000)
* SettingElement.cs : fix default value (null->"").
* SettingElementCollection.cs : implemented all.

* SettingElementTest.cs : new test.

* System_test.dll.sources : added SettingElementTest.cs.

svn path=/trunk/mcs/; revision=78053

mcs/class/System/ChangeLog
mcs/class/System/System.Configuration/ChangeLog
mcs/class/System/System.Configuration/SettingElement.cs
mcs/class/System/System.Configuration/SettingElementCollection.cs
mcs/class/System/System_test.dll.sources
mcs/class/System/Test/System.Configuration/ChangeLog
mcs/class/System/Test/System.Configuration/SettingElementTest.cs [new file with mode: 0644]

index 05099b7dc0187b20bd30fa92f8476a9fc5e792eb..56218c17e0caa9033da99abfc144f8559787a3e9 100644 (file)
@@ -1,3 +1,7 @@
+2007-05-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * System_test.dll.sources : added SettingElementTest.cs.
+
 2007-05-18  Atsushi Enomoto  <atsushi@ximian.com>
 
        * System.dll.sources : added TraceSourceInfo.cs.
index 766a71805168ccfeae16daaabdcf4ff6569ed224..ff5c725d8806a1a6177e67582511a0b168b06d0d 100644 (file)
@@ -1,3 +1,8 @@
+2007-05-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SettingElement.cs : fix default value (null->"").
+       * SettingElementCollection.cs : implemented all.
+
 2007-05-28  Atsushi Enomoto  <atsushi@ximian.com>
 
        * SettingsProviderAttribute.cs :
index 254c581b30f922c6b20cc54bad7bc2b80ca3c8f8..f8914f95e580e980a110b7ff24c6f5ab0b4153c6 100644 (file)
@@ -44,7 +44,7 @@ namespace System.Configuration
                static SettingElement ()
                {
 #if CONFIGURATION_DEP
-                       name_prop = new ConfigurationProperty ("name", typeof (string), null, ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
+                       name_prop = new ConfigurationProperty ("name", typeof (string), String.Empty, ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
                        serialize_as_prop = new ConfigurationProperty ("serializeAs", typeof (SettingsSerializeAs), null, ConfigurationPropertyOptions.IsRequired);
                        value_prop = new ConfigurationProperty ("value", typeof (SettingValueElement), null, ConfigurationPropertyOptions.IsRequired);
                        properties = new ConfigurationPropertyCollection ();
index 725158ac7a90d875fdabdc7351a081a4e2bf4e5e..d7a0ec472c7a9be2aea96620b993cf07cd75afe7 100644 (file)
@@ -40,28 +40,29 @@ namespace System.Configuration
                {
                }
 
-               [MonoTODO]
                public void Add (SettingElement element)
                {
-                       throw new NotImplementedException ();
+                       BaseAdd (element);
                }
 
-               [MonoTODO]
                public void Clear ()
                {
-                       throw new NotImplementedException ();
+                       BaseClear ();
                }
 
-               [MonoTODO]
                public SettingElement Get (string elementKey)
                {
-                       throw new NotImplementedException ();
+                       foreach (SettingElement el in this)
+                               if (el.Name == elementKey)
+                                       return el;
+                       return null;
                }
 
-               [MonoTODO]
                public void Remove (SettingElement element)
                {
-                       throw new NotImplementedException ();
+                       if (element == null)
+                               throw new ArgumentNullException ("element");
+                       BaseRemove (element.Name);
                }
 
 #if (CONFIGURATION_DEP)
index 964c96e565d465c62596df56f5549f39a6d35099..8214e6f3e801220d1e021918433e0b7bccbb8b56 100644 (file)
@@ -139,6 +139,7 @@ System.ComponentModel.Design/ServiceContainerTest.cs
 System.ComponentModel.Design.Serialization/InstanceDescriptorTest.cs
 System.Configuration/ApplicationSettingsBaseTest.cs
 System.Configuration/LocalFileSettingsProviderTest.cs
+System.Configuration/SettingElementTest.cs
 System.Configuration/SettingsPropertyCollectionTest.cs
 System.Configuration/SettingsPropertyTest.cs
 System.Configuration/SettingsPropertyValueCollectionTest.cs
index f0251797fa0b7984112ad055b7c711b645bb9b65..a2c6091c30c60c5a198ed784c0aff1e5647d86e9 100644 (file)
@@ -1,3 +1,7 @@
+2007-05-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SettingElementTest.cs : new test.
+
 2007-05-28  Atsushi Enomoto  <atsushi@ximian.com>
 
        * ApplicationSettingsBaseTest.cs : enable working test.
diff --git a/mcs/class/System/Test/System.Configuration/SettingElementTest.cs b/mcs/class/System/Test/System.Configuration/SettingElementTest.cs
new file mode 100644 (file)
index 0000000..1efbae5
--- /dev/null
@@ -0,0 +1,73 @@
+//
+// SettingElementTest.cs
+//
+// Author:
+//     Atsushi Enomoto <atsushi@ximian.com>
+//
+// Copyright (C) 2007 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
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.Text;
+using System.Configuration;
+using System.Collections.Specialized;
+using NUnit.Framework;
+
+namespace MonoTests.System.Configuration
+{
+       [TestFixture]
+       public class SettingElementTest
+       {
+               [Test]
+               public void CollectionAddNull ()
+               {
+                       try {
+                               SettingElementCollection c = new SettingElementCollection ();
+                               c.Add (null);
+                               Assert.Fail ();
+                       } catch {
+                       }
+               }
+
+               [Test]
+               public void CollectionAddNameless ()
+               {
+                       SettingElement el = new SettingElement ();
+                       Assert.AreEqual (String.Empty, el.Name, "premise #1");
+                       SettingElementCollection c = new SettingElementCollection ();
+                       Assert.AreEqual (ConfigurationElementCollectionType.BasicMap, c.CollectionType, "premise #2");
+                       c.Add (el);
+                       Assert.AreEqual (el, c.Get (""), "#1");
+               }
+
+               [Test]
+               public void CollectionGetNonExistent ()
+               {
+                       SettingElementCollection c = new SettingElementCollection ();
+                       Assert.IsNull (c.Get ("nonexistent"));
+               }
+       }
+}
+
+#endif