}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DefineType_Name_Null ()
{
AssemblyBuilder ab = genAssembly ();
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DefineType_Name_Empty ()
{
AssemblyBuilder ab = genAssembly ();
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DefineType_Name_NullChar ()
{
AssemblyBuilder ab = genAssembly ();
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DefineType_InterfaceNotAbstract ()
{
AssemblyBuilder ab = genAssembly ();
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DefineType_Parent_Interface ()
{
TypeBuilder tb;
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DefineType_TypeSize ()
{
AssemblyBuilder ab = genAssembly ();
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
[ExpectedException (typeof (ArgumentException))]
public void DuplicateTypeName () {
AssemblyBuilder ab = genAssembly ();
}
[Test]
+ [Category ("AndroidNotWorking")] // Missing Mono.CompilerServices.SymbolWriter assembly
public void DuplicateSymbolDocument ()
{
AssemblyBuilder ab = genAssembly ();
}
[Test]
+ // The token is not guaranteed to be 0x0a000001
+ [Category ("NotWorking")]
public void ResolveFieldMemberRefWithGenericArguments ()
{
var assembly = genAssembly ();
}
[Test]
+ // The token is not guaranteed to be 0x0a000002
+ [Category ("NotWorking")]
public void ResolveMethodMemberRefWithGenericArguments ()
{
var assembly = genAssembly ();
}
[Test]
+ // The token is not guaranteed to be 0x2b000001
+ [Category("NotWorking")]
public void ResolveMethodSpecWithGenericArguments ()
{
var assembly = genAssembly ();
catch (ArgumentException) {
}
}
+
+ [Test]
+ public void GetType_Escaped_Chars ()
+ {
+ AssemblyName an = genAssemblyName ();
+ AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly (an, AssemblyBuilderAccess.Run);
+ ModuleBuilder module = ab.DefineDynamicModule ("mod");
+
+ var tb = module.DefineType ("NameSpace,+*&[]\\.Type,+*&[]\\",
+ TypeAttributes.Class | TypeAttributes.Public);
+
+ var nestedTb = tb.DefineNestedType ("Nested,+*&[]\\",
+ TypeAttributes.Class | TypeAttributes.NestedPublic);
+
+ var escapedOuterName =
+ "NameSpace\\,\\+\\*\\&\\[\\]\\\\"
+ + "."
+ + "Type\\,\\+\\*\\&\\[\\]\\\\";
+
+ var escapedNestedName =
+ escapedOuterName
+ + "+"
+ + "Nested\\,\\+\\*\\&\\[\\]\\\\";
+
+ Assert.AreEqual (escapedOuterName, tb.FullName);
+ Assert.AreEqual (escapedNestedName, nestedTb.FullName);
+
+ Type outerCreatedTy = tb.CreateType ();
+ Type nestedCreatedTy = nestedTb.CreateType ();
+ Type outerTy = module.GetType (escapedOuterName);
+ Type nestedTy = module.GetType (escapedNestedName);
+
+ Assert.IsNotNull (outerTy, "A");
+ Assert.IsNotNull (nestedTy, "B");
+ Assert.AreEqual (escapedNestedName, nestedTy.FullName);
+
+
+ Assert.AreEqual (nestedCreatedTy, nestedTy);
+
+ }
+
+ [Test]
+ public void GetMethodTokenNullParam ()
+ {
+ AssemblyName an = genAssemblyName ();
+ AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly (an, AssemblyBuilderAccess.Run);
+ ModuleBuilder module = ab.DefineDynamicModule ("mod");
+
+ var method = typeof (object).GetMethod ("GetType");
+
+ // ArgumentNullException should not occur.
+ module.GetMethodToken (method, null);
+ }
+
+ [Test]
+ public void GetConstructorTokenNullParam ()
+ {
+ AssemblyName an = genAssemblyName ();
+ AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly (an, AssemblyBuilderAccess.Run);
+ ModuleBuilder module = ab.DefineDynamicModule ("mod");
+
+ var method = typeof (object).GetConstructor (Type.EmptyTypes);
+
+ // ArgumentNullException should not occur.
+ module.GetConstructorToken (method, null);
+ }
+
+ [Test]
+ public void GetType ()
+ {
+ AssemblyBuilder ab = genAssembly ();
+ ModuleBuilder module = ab.DefineDynamicModule ("foo.dll", "foo.dll", true);
+ TypeBuilder tb = module.DefineType ("t1", TypeAttributes.Public);
+
+ Assert.AreEqual ("t1[]", module.GetType ("t1[]").FullName);
+ Assert.AreEqual ("t1*", module.GetType ("t1*").FullName);
+ Assert.AreEqual ("t1&", module.GetType ("t1&").FullName);
+ Assert.AreEqual ("t1[]&", module.GetType ("t1[]&").FullName);
+ }
}
}