* IPAddressTest.cs: Added test for invalid addresses. Fixed 4-byte
authorGert Driesen <drieseng@users.sourceforge.net>
Sun, 28 Jan 2007 16:23:05 +0000 (16:23 -0000)
committerGert Driesen <drieseng@users.sourceforge.net>
Sun, 28 Jan 2007 16:23:05 +0000 (16:23 -0000)
test on 2.0 profile.
* IPAddress.cs: Provide more meaningful exception message on 2.0
profile.

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

mcs/class/System/System.Net/ChangeLog
mcs/class/System/System.Net/IPAddress.cs
mcs/class/System/Test/System.Net/ChangeLog
mcs/class/System/Test/System.Net/IPAddressTest.cs

index e05880b44d7d17b9aa537da51a57b15c3bbaf59e..00dd64375840f3b73f0ece3ab92d371bcbd39b80 100644 (file)
@@ -1,3 +1,8 @@
+2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * IPAddress.cs: Provide more meaningful exception message on 2.0
+       profile.
+
 2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * FileWebRequest.cs: Fixed PreAuthenticate and Proxy properties to
index a036153e27b889357fc83d363efe367d908b95e9..8d34ba74847b909a0293535bfeecf5836775a546 100644 (file)
@@ -143,7 +143,8 @@ namespace System.Net {
 
 #if NET_2_0
                        if (len != 16 && len != 4)
-                               throw new ArgumentException ("address");
+                               throw new ArgumentException ("An invalid IP address was specified.",
+                                       "address");
 #else
                        if (len != 16)
                                throw new ArgumentException ("address");
@@ -165,7 +166,12 @@ namespace System.Net {
                                throw new ArgumentNullException ("address");
 
                        if (address.Length != 16)
+#if NET_2_0
+                               throw new ArgumentException ("An invalid IP address was specified.",
+                                       "address");
+#else
                                throw new ArgumentException("address");
+#endif
 
                        Buffer.BlockCopy(address, 0, m_Numbers, 0, 16);
                        m_Family = AddressFamily.InterNetworkV6;
index 76779aad3f280a0eefa8e767c2d419c52f3e27f9..48087075305d794898adfa83b9e34fb0112bd1f4 100644 (file)
@@ -1,3 +1,8 @@
+2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * IPAddressTest.cs: Added test for invalid addresses. Fixed 4-byte
+       test on 2.0 profile.
+
 2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * FileWebRequestTest.cs: Reworked tests to no longer rely on TMPDIR.
index d582666bbb9d873b0cba2de25c2a96e9c011f034..f0088d25510281188447412b8a706087eefd19ec 100644 (file)
@@ -346,6 +346,61 @@ public class IPAddressTest
 #endif
        }
 
+       [Test]
+       public void Constructor0_Address_Invalid ()
+       {
+               try {
+                       new IPAddress (new byte [0]);
+                       Assert.Fail ("#A1");
+               } catch (ArgumentException ex) {
+                       Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
+                       Assert.IsNull (ex.InnerException, "#A3");
+                       Assert.IsNotNull (ex.Message, "#A4");
+#if NET_2_0
+                       Assert.IsFalse (ex.Message == "address", ex.Message, "#A5");
+                       Assert.IsNotNull (ex.ParamName, "#A6");
+                       Assert.AreEqual ("address", ex.ParamName, "#A7");
+#else
+                       Assert.AreEqual ("address", ex.Message, "#A5");
+                       Assert.IsNull (ex.ParamName, "#A6");
+#endif
+               }
+
+               try {
+                       new IPAddress (new byte [3] { 192, 202, 112 });
+                       Assert.Fail ("#B1");
+               } catch (ArgumentException ex) {
+                       Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
+                       Assert.IsNull (ex.InnerException, "#B3");
+                       Assert.IsNotNull (ex.Message, "#B4");
+#if NET_2_0
+                       Assert.IsFalse (ex.Message == "address", ex.Message, "#B5");
+                       Assert.IsNotNull (ex.ParamName, "#B6");
+                       Assert.AreEqual ("address", ex.ParamName, "#B7");
+#else
+                       Assert.AreEqual ("address", ex.Message, "#B5");
+                       Assert.IsNull (ex.ParamName, "#B6");
+#endif
+               }
+
+               try {
+                       new IPAddress (new byte [5] { 192, 202, 112, 142, 25 });
+                       Assert.Fail ("#C1");
+               } catch (ArgumentException ex) {
+                       Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
+                       Assert.IsNull (ex.InnerException, "#C3");
+                       Assert.IsNotNull (ex.Message, "#C4");
+#if NET_2_0
+                       Assert.IsFalse (ex.Message == "address", "#C5");
+                       Assert.IsNotNull (ex.ParamName, "#C6");
+                       Assert.AreEqual ("address", ex.ParamName, "#C7");
+#else
+                       Assert.AreEqual ("address", ex.Message, "#C5");
+                       Assert.IsNull (ex.ParamName, "#C6");
+#endif
+               }
+       }
+
        [Test]
        [ExpectedException (typeof (ArgumentNullException))]
        public void Constructor0_Address_Null ()
@@ -362,10 +417,16 @@ public class IPAddressTest
                        Assert.Fail ("#1");
                } catch (ArgumentException ex) {
                        Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
-                       Assert.IsNotNull (ex.Message, "#3");
-                       Assert.AreEqual ("address", ex.Message, "#4");
-                       Assert.IsNull (ex.ParamName, "#5");
-                       Assert.IsNull (ex.InnerException, "#6");
+                       Assert.IsNull (ex.InnerException, "#3");
+                       Assert.IsNotNull (ex.Message, "#4");
+#if NET_2_0
+                       Assert.IsFalse (ex.Message == "address", "#5");
+                       Assert.IsNotNull (ex.ParamName, "#6");
+                       Assert.AreEqual ("address", ex.ParamName, "#7");
+#else
+                       Assert.AreEqual ("address", ex.Message, "#5");
+                       Assert.IsNull (ex.ParamName, "#6");
+#endif
                }
        }