2010-02-23 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Tue, 23 Feb 2010 20:17:45 +0000 (20:17 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Tue, 23 Feb 2010 20:17:45 +0000 (20:17 -0000)
* TypeTest.cs: Test new v4 GetEnumNames ().

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

mcs/class/corlib/Test/System/ChangeLog
mcs/class/corlib/Test/System/TypeTest.cs

index c5e40e31e3fa0ed0e0828550695a701df6d50e03..fa348f76f4822a586c17045e9ea02f65f941dfb6 100644 (file)
@@ -1,3 +1,7 @@
+2010-02-23 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * TypeTest.cs: Test new v4 GetEnumNames ().
+
 2010-02-22 Rodrigo Kumpera  <rkumpera@novell.com>
 
        * TypeTest.cs:  Test new v4 GetEnumUnderlyingType ().
index adca76253752d834683304b6a09ae581398d3728..0f400e4ee0bf784c2de96325482cdb0b75a450d4 100644 (file)
@@ -3295,8 +3295,12 @@ PublicKeyToken=b77a5c561934e089"));
                                if (fields == 0)
                                        return null;
                                FieldInfo[] res = new FieldInfo [fields];
-                               for (int i = 0; i < fields; ++i)
-                                       res [i] = typeof (MyRealEnum).GetField ("value__");
+                               for (int i = 0; i < fields; ++i) {
+                                       if ((bindingAttr & BindingFlags.Instance) != 0)
+                                               res [i] = typeof (MyRealEnum).GetField ("value__");
+                                       else
+                                               res [i] = typeof (MyRealEnum).GetField ("A");
+                               }
                                return res;
                        }
                }
@@ -3321,6 +3325,24 @@ PublicKeyToken=b77a5c561934e089"));
 
                        Assert.AreSame (typeof (short), new MyEnum () { is_enum = true, fields = 1 }.GetEnumUnderlyingType ());
                }
+
+               [Test]
+               public void GetEnumNames () {
+                       try {
+                               new MyEnum () { is_enum = false }.GetEnumNames ();
+                               Assert.Fail ("#1");
+                       } catch (ArgumentException) {}
+
+                       var res = new MyEnum () { is_enum = true, fields = 1 }.GetEnumNames ();
+                       Assert.AreEqual (1, res.Length, "#2");
+                       Assert.AreEqual ("A", res [0], "#3");
+
+                       res = typeof (MyRealEnum).GetEnumNames ();
+                       Assert.AreEqual (3, res.Length, "#4");
+                       Assert.AreEqual ("A", res [0], "#5");
+                       Assert.AreEqual ("B", res [1], "#6");
+                       Assert.AreEqual ("C", res [2], "#7");
+               }
 #endif
 
                public abstract class Stream : IDisposable