* TypeBuilderTest.cs (MakeGenericType, Fail_MakeGenericType): New
authorRaja R Harinath <harinath@hurrynot.org>
Thu, 14 Dec 2006 18:56:51 +0000 (18:56 -0000)
committerRaja R Harinath <harinath@hurrynot.org>
Thu, 14 Dec 2006 18:56:51 +0000 (18:56 -0000)
tests inspired by #80253.

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

mcs/class/corlib/Test/System.Reflection.Emit/ChangeLog
mcs/class/corlib/Test/System.Reflection.Emit/TypeBuilderTest.cs

index 077c2a98d47ae71c53247d54e328246c99340854..f5793c2ccad93f8d8fc519be697dc91067ebdcf4 100644 (file)
@@ -1,3 +1,8 @@
+2006-12-15  Raja R Harinath  <rharinath@novell.com>
+
+       * TypeBuilderTest.cs (MakeGenericType, Fail_MakeGenericType): New
+       tests inspired by #80253.
+
 2006-09-16  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * DynamicMethodTest.cs: Enabled tests for bug #79367.
index eaea4d9ad069e0f6ef6fdfe7412ab767d6c4d95e..d8fe2e4d90640d8c6056e27894c5b2f598c57ed5 100644 (file)
@@ -15,6 +15,7 @@
 //
 
 using System;
+using System.Collections.Generic;
 using System.Threading;
 using System.Reflection;
 using System.Reflection.Emit;
@@ -1858,6 +1859,33 @@ public class TypeBuilderTest : Assertion
                Assert ("a03", args [0].ContainsGenericParameters);
                Assert ("a04", args [0].IsGenericParameter);
        }
+
+       [Test]
+       public void MakeGenericType ()
+       {
+               TypeBuilder tb = module.DefineType (genTypeName (), TypeAttributes.Public);
+               tb.DefineGenericParameters ("T");
+
+               Type t1 = tb.MakeGenericType (typeof (int));
+               Assert ("g11", t1.IsGenericType);
+               Assert ("g12", !t1.IsGenericTypeDefinition);
+               Assert ("g13", !t1.ContainsGenericParameters);
+               Assert ("g14", !t1.IsGenericParameter);
+
+               Type t2 = tb.MakeGenericType (typeof (List<>).GetGenericArguments ());
+               Assert ("g21", t2.IsGenericType);
+               Assert ("g22", !t2.IsGenericTypeDefinition);
+               Assert ("g23", t2.ContainsGenericParameters);
+               Assert ("g24", !t2.IsGenericParameter);
+       }
+
+       [Test, ExpectedException (typeof (InvalidOperationException))]
+       public void Fail_MakeGenericType ()
+       {
+               TypeBuilder tb = module.DefineType (genTypeName (), TypeAttributes.Public);
+
+               Type t1 = tb.MakeGenericType (typeof (int));
+       }
 #endif
 }
 }