+2009-10-29 Sebastien Pouliot <sebastien@ximian.com>
+
+ * ModuleBuilder.cs: Add missing 'className' validations in GetType
+ * TypeBuilder.cs: Add missing 'names' validations in
+ DefineGenericParameters
+
2009-10-27 Marek Safar <marek.safar@gmail.com>
* GenericTypeParameterBuilder.cs: Attributes work under NET_4_0.
#if NET_2_0
[ComVisible (true)]
#endif
- public override Type GetType (string className, bool throwOnError, bool ignoreCase) {
+ public override Type GetType (string className, bool throwOnError, bool ignoreCase)
+ {
+ if (className == null)
+ throw new ArgumentNullException ("className");
+ if (className.Length == 0)
+ throw new ArgumentException ("className");
+
int subt;
string orig = className;
string modifiers;
public GenericTypeParameterBuilder[] DefineGenericParameters (params string[] names)
{
+ if (names == null)
+ throw new ArgumentNullException ("names");
+ if (names.Length == 0)
+ throw new ArgumentException ("names");
+
setup_generic_class ();
generic_params = new GenericTypeParameterBuilder [names.Length];
- for (int i = 0; i < names.Length; i++)
- generic_params [i] = new GenericTypeParameterBuilder (
- this, null, names [i], i);
+ for (int i = 0; i < names.Length; i++) {
+ string item = names [i];
+ if (item == null)
+ throw new ArgumentNullException ("names");
+ generic_params [i] = new GenericTypeParameterBuilder (this, null, item, i);
+ }
return generic_params;
}
+2009-10-29 Sebastien Pouliot <sebastien@ximian.com>
+
+ * ModuleBuilderTest.cs: Add test cases for GetType overloads
+ * TypeBuilderTest.cs: Remove NotWorking from two DefineGenericParameters test case.
+
2009-10-24 Sebastien Pouliot <sebastien@ximian.com>
* TypeBuilderTest.cs: Validation test cases for GetConstructor
#endif
[Test]
- public void GetGenericArguments_Returns_Null_For_Non_Generic_Methods ()
+ public void GetType_String_Null ()
{
-
+ AssemblyName an = genAssemblyName ();
+ AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly (an, AssemblyBuilderAccess.Run);
+ ModuleBuilder module = ab.DefineDynamicModule ("GetTypeNullCheck");
+
+ try {
+ module.GetType (null);
+ Assert.Fail ("Expected ArgumentNullException for GetType(string)");
+ }
+ catch (ArgumentNullException) {
+ }
+ try {
+ module.GetType (null, true); // ignoreCase
+ Assert.Fail ("Expected ArgumentNullException for GetType(string,bool)");
+ }
+ catch (ArgumentNullException) {
+ }
+ try {
+ module.GetType (null, true, true); // throwOnError, ignoreCase
+ Assert.Fail ("Expected ArgumentNullException for GetType(string,bool,bool)");
+ }
+ catch (ArgumentNullException) {
+ }
+ }
+
+ [Test]
+ public void GetType_String_Empty ()
+ {
+ AssemblyName an = genAssemblyName ();
+ AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly (an, AssemblyBuilderAccess.Run);
+ ModuleBuilder module = ab.DefineDynamicModule ("GetTypeEmptyCheck");
+
+ try {
+ module.GetType (String.Empty);
+ Assert.Fail ("Expected ArgumentNullException for GetType(string)");
+ }
+ catch (ArgumentException) {
+ }
+ try {
+ module.GetType (String.Empty, true); // ignoreCase
+ Assert.Fail ("Expected ArgumentNullException for GetType(string,bool)");
+ }
+ catch (ArgumentException) {
+ }
+ try {
+ module.GetType (String.Empty, true, true); // throwOnError, ignoreCase
+ Assert.Fail ("Expected ArgumentNullException for GetType(string,bool,bool)");
+ }
+ catch (ArgumentException) {
+ }
}
}
}
}
[Test]
- [ExpectedException (typeof (NullReferenceException))]
public void Static_GetConstructor_TypeBuilderGeneric_ConstructorInfoNull ()
{
TypeBuilder tb = module.DefineType ("XXX");
GenericTypeParameterBuilder [] typeParams = tb.DefineGenericParameters ("T");
Type fooOfT = tb.MakeGenericType (typeParams [0]);
- TypeBuilder.GetConstructor (fooOfT, null);
+ try {
+ TypeBuilder.GetConstructor (fooOfT, null);
+ Assert.Fail ("Expected NullReferenceException");
+ }
+ catch (NullReferenceException) {
+ }
}
#endif
}
[Test]
- [Category ("NotWorking")]
public void DefineGenericParameters_Names_Empty ()
{
TypeBuilder tb = module.DefineType (genTypeName (), TypeAttributes.Public);
}
[Test]
- [Category ("NotWorking")]
public void DefineGenericParameters_Names_Null ()
{
TypeBuilder tb = module.DefineType (genTypeName (), TypeAttributes.Public);