Cleanup GenericTypeParameterBuilder tests
authorHugh Bellamy <hughbellars@gmail.com>
Sat, 18 Jun 2016 19:58:33 +0000 (20:58 +0100)
committerHugh Bellamy <hughbellars@gmail.com>
Sun, 26 Jun 2016 19:24:54 +0000 (20:24 +0100)
Commit migrated from https://github.com/dotnet/corefx/commit/d11b1091aadf6c5c63ed107a800f9d80fb9ef9f4

30 files changed:
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTyepParameterBuilderSetBaseTypeConstraint.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderAssembly.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderAssemblyQualifiedName.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderBaseType.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderContainsGenericParameters.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderDeclaringMethod.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderDeclaringType.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderFullName.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderGUID.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderGenericParameterPosition.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderIsGenericParameter.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderIsGenericType.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderIsGenericTypeDefinition.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakeArrayType.cs [new file with mode: 0644]
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakeArrayType1.cs [deleted file]
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakeArrayType2.cs [deleted file]
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakeByRefType.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakeGenericType.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakePointerType.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderModule.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderName.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderNamespace.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetCustomAttribute.cs [new file with mode: 0644]
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetCustomAttribute1.cs [deleted file]
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetCustomAttribute2.cs [deleted file]
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetGenericParameterAttributes.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetInterfaceConstraints.cs
src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderToString.cs
src/libraries/System.Reflection.Emit/tests/System.Reflection.Emit.Tests.csproj
src/libraries/System.Reflection.Emit/tests/Utilities.cs

index 7a68257..b298c98 100644 (file)
@@ -2,62 +2,24 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
 {
     public class GenericTypeParameterBuilderSetBaseTypeConstraint
     {
-        [Fact]
-        public void TestWithStringBaseType()
+        [Theory]
+        [InlineData(typeof(string), typeof(string))]
+        [InlineData(null, typeof(object))]
+        public void SetBaseTypeConstraint(Type baseTypeConstraint, Type expectedBaseType)
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
 
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            Type expectedValue = typeof(string);
-            Type actualValue;
-
-            TFirst.SetBaseTypeConstraint(typeof(string));
-            actualValue = TFirst.BaseType;
-            Assert.Equal(expectedValue, actualValue);
-        }
-
-        [Fact]
-        public void TestWithNullArgument()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            Type expectedValue = typeof(object);
-            Type actualValue;
-            TFirst.SetBaseTypeConstraint(null);
-            actualValue = TFirst.BaseType;
-            Assert.Equal(expectedValue, actualValue);
+            GenericTypeParameterBuilder firstParam = typeParams[0];
+            firstParam.SetBaseTypeConstraint(baseTypeConstraint);
+            Assert.Equal(expectedBaseType, firstParam.BaseType);
         }
     }
-
-    public class ExampleBase { }
 }
index 3d6f789..aa99aa7 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,26 +9,15 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderAssembly
     {
         [Fact]
-        public void TestAssemblyProperty()
+        public void Assembly()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
+            AssemblyBuilder assembly = Helpers.DynamicAssembly();
+            ModuleBuilder module = assembly.DefineDynamicModule("Module");            
+            TypeBuilder type = module.DefineType("Sample", TypeAttributes.Public);
 
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            Assembly expectedValue = myAssembly;
-            Assembly actualValue;
-            actualValue = TFirst.Assembly;
-
-            Assert.True(actualValue.Equals(expectedValue));
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.Equal(assembly, typeParams[0].Assembly);
         }
     }
 }
index 3de7d1a..4aeeae4 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,27 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderAssemblyQualifiedName
     {
         [Fact]
-        public void TestAssemblyQualifiedNameProperty()
+        public void AssemblyQualifiedName_ReturnsNull()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            string actualValue;
-
-            actualValue = TFirst.AssemblyQualifiedName;
-            //this method only returns null
-
-            Assert.Null(actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.Null(typeParams[0].AssemblyQualifiedName);
         }
     }
 }
index 4d36958..e323ac0 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,52 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderBaseType
     {
         [Fact]
-        public void TestBaseTypeWithNotSet()
+        public void BaseType_NotSet_ReturnsNull()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            Type actualValue;
-
-            actualValue = TFirst.BaseType;
-
-            Assert.Null(actualValue);
-        }
-
-        [Fact]
-        public void TestBaseTypeWithSetValue()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            TFirst.SetBaseTypeConstraint(typeof(string));
-
-            Type expectedValue = typeof(string);
-            Type actualValue;
-
-            actualValue = TFirst.BaseType;
-
-            Assert.Equal(expectedValue, actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.Null(typeParams[0].BaseType);
         }
     }
 }
index a53183a..cf9aec4 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,27 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderContainsGenericParameters
     {
         [Fact]
-        public void TestContainsGenericParameters()
+        public void ContainsGenericParameters_ReturnsTrue()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            bool expectedValue = true;
-            bool actualValue;
-
-            actualValue = TFirst.ContainsGenericParameters;
-
-            Assert.Equal(expectedValue, actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.True(typeParams[0].ContainsGenericParameters);
         }
     }
 }
index c21a079..f055231 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,27 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderDeclaringMethod
     {
         [Fact]
-        public void TestDeclaringMethod()
+        public void DeclaringMethod_DefinedOnType_ReturnsNull()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            MethodBase expectedValue = null;
-            MethodBase actualValue;
-
-            actualValue = TFirst.DeclaringMethod;
-
-            Assert.Equal(expectedValue, actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.Null(typeParams[0].DeclaringMethod);
         }
     }
 }
index e158963..d830fc4 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,27 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderDeclaringType
     {
         [Fact]
-        public void TestDeclaringType()
+        public void DeclaringType()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            Type expectedValue = myType.AsType();
-            Type actualValue;
-
-            actualValue = TFirst.DeclaringType;
-
-            Assert.Equal(expectedValue, actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.Equal(type.AsType(), typeParams[0].DeclaringType);
         }
     }
 }
index f72d3d5..c9aa179 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,27 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderFullName
     {
         [Fact]
-        public void TestFullNameProperty()
+        public void FullName_ReturnsNull()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            string expectedValue = null;
-            string actualValue;
-
-            actualValue = TFirst.FullName;
-
-            Assert.Equal(expectedValue, actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.Null(typeParams[0].FullName);
         }
     }
 }
index 7b5f198..9dee9e3 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,21 +9,13 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderGUID
     {
         [Fact]
-        public void TestThrowsExceptionForNotSupported()
+        public void Guid_ThrowsNotSupportedException()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-            Assert.Throws<NotSupportedException>(() => { Guid guid = TFirst.GUID; });
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            
+            Assert.Throws<NotSupportedException>(() => typeParams[0].GUID);
         }
     }
 }
index f0a7c30..62a41e4 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,54 +9,14 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderGenericParameterPosition
     {
         [Fact]
-        public void TestGenericParameterPositionProperty()
+        public void GenericParameterPosition()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst", "TSecond" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
 
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst", "TSecond" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-            GenericTypeParameterBuilder TSecond = typeParams[1];
-
-
-            int expectedValue = 0;
-            int actualValue;
-
-            actualValue = TFirst.GenericParameterPosition;
-
-            Assert.Equal(expectedValue, actualValue);
-        }
-
-        [Fact]
-        public void TestGenericParameterPositionWithDifferentPosition()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst", "TSecond" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-            GenericTypeParameterBuilder TSecond = typeParams[1];
-
-
-            int expectedValue = 1;
-            int actualValue;
-            actualValue = TSecond.GenericParameterPosition;
-
-            Assert.Equal(expectedValue, actualValue);
+            Assert.Equal(0, typeParams[0].GenericParameterPosition);
+            Assert.Equal(1, typeParams[1].GenericParameterPosition);
         }
     }
 }
index 95153c9..c8fcf64 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,28 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderIsGenericParameter
     {
         [Fact]
-        public void TestIsGenericParameter()
+        public void IsGenericParameter_ReturnsTrue()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-
-            bool expectedValue = true;
-            bool actualValue;
-
-            actualValue = TFirst.IsGenericParameter;
-
-            Assert.Equal(expectedValue, actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.True(typeParams[0].IsGenericParameter);
         }
     }
 }
index 2187712..925b79c 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,28 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderIsGenericType
     {
         [Fact]
-        public void TestIsGenericType()
+        public void IsGenericType_ReturnsFalse()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-
-            bool expectedValue = false;
-            bool actualValue;
-
-            actualValue = TFirst.IsGenericType;
-
-            Assert.Equal(expectedValue, actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.False(typeParams[0].IsGenericType);
         }
     }
 }
index 9df9cac..ad9f05d 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,28 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderIsGenericTypeDefinition
     {
         [Fact]
-        public void TestIsGenericTypeDefinition()
+        public void IsGenericTypeDefinition_ReturnsFalse()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-
-            bool expectedValue = false;
-            bool actualValue;
-
-            actualValue = TFirst.IsGenericTypeDefinition;
-
-            Assert.Equal(expectedValue, actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.False(typeParams[0].IsGenericTypeDefinition);
         }
     }
 }
diff --git a/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakeArrayType.cs b/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakeArrayType.cs
new file mode 100644 (file)
index 0000000..32961c9
--- /dev/null
@@ -0,0 +1,53 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using Xunit;
+
+namespace System.Reflection.Emit.Tests
+{
+    public class GenericTypeParameterBuilderMakeArrayType
+    {
+        [Fact]
+        public void MakeArrayType()
+        {
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+
+            Assert.Equal("TFirst[]", typeParams[0].MakeArrayType().Name);
+        }
+
+        [Fact]
+        public void MakeArrayType_Int_RankOfOne()
+        {
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+
+            Assert.Equal("TFirst[*]", typeParams[0].MakeArrayType(1).Name);
+        }
+
+        [Fact]
+        public void MakeArrayType_Int_RankOfTwo()
+        {
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+
+            Assert.Equal("TFirst[,]", typeParams[0].MakeArrayType(2).Name);
+        }
+
+        [Theory]
+        [InlineData(0)]
+        [InlineData(-1)]
+        public void MakeArrayType_Int_RankLessThanOne_ThrowsIndexOutOfRangeException(int rank)
+        {
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            
+            Assert.Throws<IndexOutOfRangeException>(() => typeParams[0].MakeArrayType(rank));
+        }
+    }
+}
diff --git a/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakeArrayType1.cs b/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakeArrayType1.cs
deleted file mode 100644 (file)
index aa1f59a..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
-using Xunit;
-
-namespace System.Reflection.Emit.Tests
-{
-    public class GenericTypeParameterBuilderMakeArrayType1
-    {
-        [Fact]
-        public void TestMakeArrayType()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            string expectedValue = "TFirst[]";
-            string actualValue;
-
-            Type type = TFirst.MakeArrayType();
-            actualValue = type.Name;
-            Assert.Equal(expectedValue, actualValue);
-        }
-    }
-}
diff --git a/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakeArrayType2.cs b/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderMakeArrayType2.cs
deleted file mode 100644 (file)
index 9446e7b..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
-using Xunit;
-
-namespace System.Reflection.Emit.Tests
-{
-    public class GenericTypeParameterBuilderMakeArrayType
-    {
-        [Fact]
-        public void TestWithRankOne()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-            string expectedValue = "TFirst[*]";
-            string actualValue;
-
-            Type type = TFirst.MakeArrayType(1);
-            actualValue = type.Name;
-
-            Assert.Equal(expectedValue, actualValue);
-        }
-
-        [Fact]
-        public void TestWithRankTwo()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            string expectedValue = "TFirst[,]";
-            string actualValue;
-
-            Type type = TFirst.MakeArrayType(2);
-            actualValue = type.Name;
-
-            Assert.Equal(expectedValue, actualValue);
-        }
-
-        [Fact]
-        public void TestThrowsExceptionForZeroRank()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-            Assert.Throws<IndexOutOfRangeException>(() => { Type type = TFirst.MakeArrayType(0); });
-        }
-
-        [Fact]
-        public void TestThrowsExceptionForNegativeRank()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-            Assert.Throws<IndexOutOfRangeException>(() => { Type type = TFirst.MakeArrayType(-1); });
-        }
-    }
-}
index 2e406fb..acfb82e 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,27 +9,15 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderMakeByRefType
     {
         [Fact]
-        public void TestMakeByRefType()
+        public void MakeByRefType()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
 
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            bool expectedValue = true;
-            bool actualValue;
-
-            Type type = TFirst.MakeByRefType();
-            actualValue = (type.Name == "TFirst&") && (type.GetTypeInfo().BaseType == typeof(Array));
-            Assert.Equal(expectedValue, actualValue);
+            Type byRefType = typeParams[0].MakeByRefType();
+            Assert.Equal(typeof(Array), byRefType.GetTypeInfo().BaseType);
+            Assert.Equal("TFirst&", byRefType.Name);
         }
     }
 }
index 841ba39..552472a 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,59 +9,33 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderMakeGenericType
     {
         [Fact]
-        public void TestThrowsExceptionForNullTypeArguments()
+        public void MakeGenericType_NullTypeArguments_ThrowsInvalidOperationException()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-            Assert.Throws<InvalidOperationException>(() => { Type type = TFirst.MakeGenericType(null); });
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            
+            Assert.Throws<InvalidOperationException>(() => typeParams[0].MakeGenericType(null));
         }
 
         [Fact]
-        public void TestThrowsExceptionForOneMemberArray()
+        public void MakeGenericType_SingleTypeArgument_ThrowsInvalidOperationException()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            Assert.Throws<InvalidOperationException>(() => { Type type = TFirst.MakeGenericType(new Type[] { typeof(Type) }); });
-            //this method only throw exceptions
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            
+            Assert.Throws<InvalidOperationException>(() => typeParams[0].MakeGenericType(new Type[] { typeof(Type) }));
         }
 
         [Fact]
-        public void TestThrowsExceptionForIncorrectNumberOfTypeParams()
+        public void MakeGenericType_TwoTypeArguments_ThrowsInvalidOperationException()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-            Assert.Throws<InvalidOperationException>(() => { Type type = TFirst.MakeGenericType(new Type[] { typeof(int), typeof(string) }); });
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            
+            Assert.Throws<InvalidOperationException>(() => typeParams[0].MakeGenericType(new Type[] { typeof(int), typeof(string) }));
         }
     }
 }
index 8ca49b8..d88804c 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,26 +9,15 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderMakePointerType
     {
         [Fact]
-        public void TestMakePointerType()
+        public void MakePointerType()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
 
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            bool expectedValue = true;
-            bool actualValue;
-            Type type = TFirst.MakePointerType();
-            actualValue = (type.Name == "TFirst*") && (type.GetTypeInfo().BaseType == typeof(Array));
-            Assert.Equal(expectedValue, actualValue);
+            Type pointerType = typeParams[0].MakePointerType();
+            Assert.Equal(typeof(Array), pointerType.GetTypeInfo().BaseType);
+            Assert.Equal("TFirst*", pointerType.Name);
         }
     }
 }
index abaaffa..9805ad4 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,28 +9,14 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderModule
     {
         [Fact]
-        public void TestModuleProperty()
+        public void Module()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
+            ModuleBuilder module = Helpers.DynamicModule();
+            TypeBuilder type = module.DefineType("TestType", TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
 
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-
-            Module expectedValue = myModule;
-            Module actualValue;
-
-            actualValue = TFirst.Module;
-
-            Assert.Equal(expectedValue, actualValue);
+            Assert.Equal(module, typeParams[0].Module);
         }
     }
 }
index 2c6368d..71e94cc 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,28 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderName
     {
         [Fact]
-        public void TestNameProperty()
+        public void Name()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-
-            string expectedValue = "TFirst";
-            string actualValue;
-
-            actualValue = TFirst.Name;
-
-            Assert.Equal(expectedValue, actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.Equal("TFirst", typeParams[0].Name);
         }
     }
 }
index ec5fb6c..77dffbf 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,28 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderNamespace
     {
         [Fact]
-        public void TestNamespaceProperty()
+        public void Namespace_ReturnsNull()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-
-            string expectedValue = null;
-            string actualValue;
-
-            actualValue = TFirst.Namespace;
-
-            Assert.Equal(expectedValue, actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.Null(typeParams[0].Namespace);
         }
     }
 }
diff --git a/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetCustomAttribute.cs b/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetCustomAttribute.cs
new file mode 100644 (file)
index 0000000..b8ab349
--- /dev/null
@@ -0,0 +1,72 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using Xunit;
+
+namespace System.Reflection.Emit.Tests
+{
+    public class GenericTypeParameterBuilderSetCustomAttribute
+    {
+        [Fact]
+        public void SetCustomAttribute_ConstructorInfo_ByteArray()
+        {
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            ConstructorInfo attributeConstructor = typeof(HelperAttribute).GetConstructors()[0];
+            byte[] binaryAttribute = new byte[128];
+
+            typeParams[0].SetCustomAttribute(attributeConstructor, binaryAttribute);
+        }
+
+        [Fact]
+        public void SetCustomAttribute_ConstructorInfo_ByteArray_NullAttributeConstructor_ThrowsArgumentNullException()
+        {
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+
+            Assert.Throws<ArgumentNullException>("con", () => typeParams[0].SetCustomAttribute(null, new byte[128]));
+        }
+
+        [Fact]
+        public void SetCustomAttribute_ConstructorInfo_ByteArray_NullBinaryAttribute_ThrowsArgumentNullException()
+        {
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            ConstructorInfo attributeConstructor = typeof(HelperAttribute).GetConstructor(new Type[0]);
+
+            Assert.Throws<ArgumentNullException>("binaryAttribute", () => typeParams[0].SetCustomAttribute(attributeConstructor, null));
+        }
+
+        [Fact]
+        public void SetCustomAttribute_CustomAttributeBuilder()
+        {
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            ConstructorInfo constructorinfo = typeof(HelperAttribute).GetConstructor(new Type[] { typeof(string) });
+            CustomAttributeBuilder attributeBuilder = new CustomAttributeBuilder(constructorinfo, new object[] { "TestString" });
+
+            typeParams[0].SetCustomAttribute(attributeBuilder);
+        }
+
+        [Fact]
+        public void SetCustomAttribute_CustomAttributeBuilder_NullAttributeBuilder_ThrowsArgumentNullException()
+        {
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            
+            Assert.Throws<ArgumentNullException>("customBuilder", () => typeParams[0].SetCustomAttribute(null));
+        }
+    }
+
+    public class HelperAttribute
+    {
+        public HelperAttribute() { }
+        public HelperAttribute(string str) { }
+    }
+}
diff --git a/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetCustomAttribute1.cs b/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetCustomAttribute1.cs
deleted file mode 100644 (file)
index 80db3a2..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
-using Xunit;
-
-namespace System.Reflection.Emit.Tests
-{
-    public class GenericTypeParameterBuilderSetCustomAttribute1
-    {
-        [Fact]
-        public void TestSetCustomAttribute()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            ConstructorInfo[] cons = typeof(HelperAttribute).GetConstructors();
-            ConstructorInfo constructorinfo = cons[0];
-            byte[] binaryAttribute = new byte[128];
-            TFirst.SetCustomAttribute(constructorinfo, binaryAttribute);
-        }
-
-        [Fact]
-        public void TestThrowsExceptionOnNullConstructorInfo()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            byte[] binaryAttribute = new byte[128];
-
-            Assert.Throws<ArgumentNullException>(() => { TFirst.SetCustomAttribute(null, binaryAttribute); });
-        }
-
-        [Fact]
-        public void TestThrowsExceptionForNullByteArray()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-            ConstructorInfo con = typeof(HelperAttribute).GetConstructor(new Type[] { });
-
-            Assert.Throws<ArgumentNullException>(() => { TFirst.SetCustomAttribute(con, null); });
-        }
-    }
-
-    public class HelperAttribute
-    {
-        public HelperAttribute()
-        {
-        }
-        public HelperAttribute(string str)
-        {
-        }
-    }
-}
diff --git a/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetCustomAttribute2.cs b/src/libraries/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetCustomAttribute2.cs
deleted file mode 100644 (file)
index 1693499..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
-using Xunit;
-
-namespace System.Reflection.Emit.Tests
-{
-    public class GenericTypeParameterBuilderSetCustomAttribute
-    {
-        [Fact]
-        public void TestSetCustomAttribute()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            Type[] ctorParams = new Type[] { typeof(string) };
-            ConstructorInfo constructorinfo = typeof(HelperAttribute).GetConstructor(ctorParams);
-            CustomAttributeBuilder cABB = new CustomAttributeBuilder(constructorinfo, new object[] { "TestString" });
-            TFirst.SetCustomAttribute(cABB);
-        }
-
-        [Fact]
-        public void TestThrowsExceptionForNullBuilder()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            Assert.Throws<ArgumentNullException>(() => { TFirst.SetCustomAttribute(null); });
-        }
-    }
-}
index 7700522..143f355 100644 (file)
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
 {
     public class GenericTypeParameterBuilderSetGenericParameterAttributes
     {
-        [Fact]
-        public void TestContravariantGenericParameterAttribute()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            GenericParameterAttributes gPA = GenericParameterAttributes.Contravariant;
-
-
-            TFirst.SetGenericParameterAttributes(gPA);
-            Assert.True(TFirst.GenericParameterAttributes.Equals(gPA));
-        }
-
-        [Fact]
-        public void TestCovariantGenericParameterAttribute()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            GenericParameterAttributes gPA = GenericParameterAttributes.Covariant;
-            TFirst.SetGenericParameterAttributes(gPA);
-            Assert.True(TFirst.GenericParameterAttributes.Equals(gPA));
-        }
-
-        [Fact]
-        public void TestConstraintGenericParameterAttribute()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            GenericParameterAttributes gPA = GenericParameterAttributes.DefaultConstructorConstraint;
-
-            TFirst.SetGenericParameterAttributes(gPA);
-            Assert.True(TFirst.GenericParameterAttributes.Equals(gPA));
-        }
-
-        [Fact]
-        public void TestGenericParameterAttributeWithNoneOption()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            GenericParameterAttributes gPA = GenericParameterAttributes.None;
-
-            TFirst.SetGenericParameterAttributes(gPA);
-            Assert.True(TFirst.GenericParameterAttributes.Equals(gPA));
-        }
-
-        [Fact]
-        public void TestNotNullableConstraintGenericParameterAttribute()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            GenericParameterAttributes gPA = GenericParameterAttributes.NotNullableValueTypeConstraint;
-
-            TFirst.SetGenericParameterAttributes(gPA);
-            Assert.True(TFirst.GenericParameterAttributes.Equals(gPA));
-        }
-
-        [Fact]
-        public void TestReferenceConstraintGenericParameterAttribute()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            GenericParameterAttributes gPA = GenericParameterAttributes.ReferenceTypeConstraint;
-
-            TFirst.SetGenericParameterAttributes(gPA);
-            Assert.True(TFirst.GenericParameterAttributes.Equals(gPA));
-        }
-
-        [Fact]
-        public void TestSpecialConstraintMaskGenericParameterAttribute()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            GenericParameterAttributes gPA = GenericParameterAttributes.SpecialConstraintMask;
-
-            TFirst.SetGenericParameterAttributes(gPA);
-            Assert.True(TFirst.GenericParameterAttributes.Equals(gPA));
-        }
-
-        [Fact]
-        public void TestVarianceMaskGenericParameterAttribute()
-        {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            GenericParameterAttributes gPA = GenericParameterAttributes.VarianceMask;
-
-            TFirst.SetGenericParameterAttributes(gPA);
-            Assert.True(TFirst.GenericParameterAttributes.Equals(gPA));
+        [Theory]
+        [InlineData(GenericParameterAttributes.Contravariant)]
+        [InlineData(GenericParameterAttributes.Covariant)]
+        [InlineData(GenericParameterAttributes.DefaultConstructorConstraint)]
+        [InlineData(GenericParameterAttributes.None)]
+        [InlineData(GenericParameterAttributes.NotNullableValueTypeConstraint)]
+        [InlineData(GenericParameterAttributes.ReferenceTypeConstraint)]
+        [InlineData(GenericParameterAttributes.SpecialConstraintMask)]
+        [InlineData(GenericParameterAttributes.VarianceMask)]
+        public void SetGenericParameterAttributes(GenericParameterAttributes genericParameterAttributes)
+        {
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            GenericTypeParameterBuilder firstTypeParam = typeParams[0];
+
+            firstTypeParam.SetGenericParameterAttributes(genericParameterAttributes);
+            Assert.Equal(genericParameterAttributes, firstTypeParam.GenericParameterAttributes);
         }
     }
 }
index dae6541..e3be6e0 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,75 +9,51 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderSetInterfaceConstraints
     {
         [Fact]
-        public void TestInterfaceConstraintsOnCustomInterface()
+        public void SetInterfaceConstraints_OneCustomInterface()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            
+            typeParams[0].SetInterfaceConstraints(typeof(EmptyInterface1));
+            Type resultType = type.CreateTypeInfo().AsType();
+            Type[] genericTypeParams = resultType.GetGenericArguments();
 
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            TFirst.SetInterfaceConstraints(typeof(IExample));
-            Type type = myType.CreateTypeInfo().AsType();
-            Type[] genericTypeParams = type.GetGenericArguments();
             Assert.Equal(1, genericTypeParams.Length);
-            Assert.Equal(new Type[] { typeof(IExample) }, genericTypeParams[0].GetTypeInfo().GetGenericParameterConstraints());
+            Assert.Equal(new Type[] { typeof(EmptyInterface1) }, genericTypeParams[0].GetTypeInfo().GetGenericParameterConstraints());
         }
 
         [Fact]
-        public void TestInterfaceConstraintsOnNull()
+        public void SetInterfaceConstraints_Null()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            
+            typeParams[0].SetInterfaceConstraints(null);
+            Type resultType = type.CreateTypeInfo().AsType();
+            Type[] genericTypeParams = resultType.GetGenericArguments();
 
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-            TFirst.SetInterfaceConstraints(null);
-            Type type = myType.CreateTypeInfo().AsType();
-            Type[] genericTypeParams = type.GetGenericArguments();
             Assert.Equal(1, genericTypeParams.Length);
-            Assert.Equal(new Type[] { }, genericTypeParams[0].GetTypeInfo().GetGenericParameterConstraints());
+            Assert.Equal(new Type[0], genericTypeParams[0].GetTypeInfo().GetGenericParameterConstraints());
         }
 
-
         [Fact]
-        public void TestMultipleInterfaceConstraints()
+        public void SetInterfaceConstraints_MultipleCustomInterfaces()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            
+            typeParams[0].SetInterfaceConstraints(new Type[] { typeof(EmptyInterface1), typeof(EmptyInterface2) });
+            Type resultType = type.CreateTypeInfo().AsType();
+            Type[] genericTypeParams = resultType.GetGenericArguments();
 
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-            TFirst.SetInterfaceConstraints(new Type[] { typeof(IExample), typeof(IExampleA) });
-            Type type = myType.CreateTypeInfo().AsType();
-            Type[] genericTypeParams = type.GetGenericArguments();
             Assert.Equal(1, genericTypeParams.Length);
-            Assert.Equal(new Type[] { typeof(IExample), typeof(IExampleA) }, genericTypeParams[0].GetTypeInfo().GetGenericParameterConstraints());
+            Assert.Equal(new Type[] { typeof(EmptyInterface1), typeof(EmptyInterface2) }, genericTypeParams[0].GetTypeInfo().GetGenericParameterConstraints());
         }
     }
 
-    public interface IExample { }
-
-    public interface IExampleA { }
+    public interface EmptyInterface1 { }
+    public interface EmptyInterface2 { }
 }
index 791c9a8..b5dbb18 100644 (file)
@@ -2,9 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 // See the LICENSE file in the project root for more information.
 
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
 using Xunit;
 
 namespace System.Reflection.Emit.Tests
@@ -12,26 +9,12 @@ namespace System.Reflection.Emit.Tests
     public class GenericTypeParameterBuilderToString
     {
         [Fact]
-        public void TestToString()
+        public void ToString_ReturnsName()
         {
-            AssemblyName myAsmName = new AssemblyName("GenericEmitExample1");
-            AssemblyBuilder myAssembly = AssemblyBuilder.DefineDynamicAssembly(myAsmName, AssemblyBuilderAccess.Run);
-            ModuleBuilder myModule = TestLibrary.Utilities.GetModuleBuilder(myAssembly, myAsmName.Name);
-
-            Type baseType = typeof(ExampleBase);
-
-            TypeBuilder myType = myModule.DefineType("Sample", TypeAttributes.Public);
-
-            string[] typeParamNames = { "TFirst" };
-            GenericTypeParameterBuilder[] typeParams = myType.DefineGenericParameters(typeParamNames);
-
-            GenericTypeParameterBuilder TFirst = typeParams[0];
-
-            string expectedValue = TFirst.Name;
-            string actualValue;
-
-            actualValue = TFirst.ToString();
-            Assert.Equal(expectedValue, actualValue);
+            TypeBuilder type = Helpers.DynamicType(TypeAttributes.Public);
+            string[] typeParamNames = new string[] { "TFirst" };
+            GenericTypeParameterBuilder[] typeParams = type.DefineGenericParameters(typeParamNames);
+            Assert.Equal(typeParams[0].Name, typeParams[0].ToString());
         }
     }
 }
index 3d8f68d..b3a7720 100644 (file)
@@ -33,8 +33,7 @@
     <Compile Include="EnumBuilder\EnumBuilder.Properties.Tests.cs" />
     <Compile Include="EventBuilder\EventBuilderAddOtherMethod.cs" />
     <Compile Include="EventBuilder\EventBuilderSetAddOnMethod.cs" />
-    <Compile Include="EventBuilder\EventBuilderSetCustomAttribute1.cs" />
-    <Compile Include="EventBuilder\EventBuilderSetCustomAttribute2.cs" />
+    <Compile Include="EventBuilder\EventBuilderSetCustomAttribute.cs" />
     <Compile Include="EventBuilder\EventBuilderSetRaiseMethod.cs" />
     <Compile Include="EventBuilder\EventBuilderSetRemoveOnMethod.cs" />
     <Compile Include="FieldBuilder\FieldBuilderAttributes.cs" />
@@ -43,8 +42,7 @@
     <Compile Include="FieldBuilder\FieldBuilderGetValue.cs" />
     <Compile Include="FieldBuilder\FieldBuilderName.cs" />
     <Compile Include="FieldBuilder\FieldBuilderSetConstant.cs" />
-    <Compile Include="FieldBuilder\FieldBuilderSetCustomAttribute1.cs" />
-    <Compile Include="FieldBuilder\FieldBuilderSetCustomAttribute2.cs" />
+    <Compile Include="FieldBuilder\FieldBuilderSetCustomAttribute.cs" />
     <Compile Include="FieldBuilder\FieldBuilderSetOffset.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTyepParameterBuilderSetBaseTypeConstraint.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderAssembly.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderIsGenericParameter.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderIsGenericType.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderIsGenericTypeDefinition.cs" />
-    <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderMakeArrayType1.cs" />
-    <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderMakeArrayType2.cs" />
+    <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderMakeArrayType.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderMakeByRefType.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderMakeGenericType.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderMakePointerType.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderModule.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderName.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderNamespace.cs" />
-    <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderSetCustomAttribute1.cs" />
-    <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderSetCustomAttribute2.cs" />
+    <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderSetCustomAttribute.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderSetGenericParameterAttributes.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderSetInterfaceConstraints.cs" />
     <Compile Include="GenericTypeParameterBuilder\GenericTypeParameterBuilderToString.cs" />
index 8e8aa3d..a484edb 100644 (file)
@@ -6,6 +6,8 @@ using System.Reflection.Emit;
 
 namespace System.Reflection.Emit.Tests
 {
+    public class EmptyAttribute : Attribute { }
+
     public static class Helpers
     {
         public static AssemblyBuilder DynamicAssembly(string name = "TestAssembly")