(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / corlib / Test / System / ModuleHandleTest.cs
blob1e71e88f3dc96fb99e335f5b4c809437e784e0c8
1 //
2 // ModuleHandleTest - NUnit Test Cases for the ModuleHandle class
3 //
4 // Zoltan Varga (vargaz@freemail.hu)
5 //
6 // (C) Ximian, Inc. http://www.ximian.com
7 //
8 //
11 // MISSING TESTS:
12 // - dynamic assemblies
15 #if NET_2_0
17 using System;
18 using System.Threading;
19 using System.Reflection;
20 using System.Reflection.Emit;
21 using System.IO;
22 using System.Collections;
24 using NUnit.Framework;
26 namespace MonoTests.System
29 [TestFixture]
30 public class ModuleHandleTest : Assertion
32 public static int foo;
34 public static int bar {
35 get {
36 return 0;
40 public event EventHandler baz;
42 public ModuleHandleTest () {
45 public static void gnaf (int i, int j) {
48 public ModuleHandle module;
50 [SetUp]
51 public void SetUp () {
52 module = typeof (ModuleHandleTest).Assembly.GetModules ()[0].ModuleHandle;
55 [Test]
56 public void ResolveTypeToken () {
57 // A typedef
58 AssertEquals (typeof (ModuleHandleTest), Type.GetTypeFromHandle (module.ResolveTypeHandle (typeof (ModuleHandleTest).MetadataToken)));
61 [Test]
62 [ExpectedException (typeof (ArgumentNullException))]
63 public void ResolveTypeTokenInvalidHandle () {
64 ModuleHandle.EmptyHandle.ResolveTypeHandle (typeof (ModuleHandleTest).MetadataToken);
67 [Test]
68 [ExpectedException (typeof (TypeLoadException))]
69 public void ResolveTypeTokenInvalidTokenType () {
70 module.ResolveTypeHandle (1234);
73 [Test]
74 [ExpectedException (typeof (TypeLoadException))]
75 public void ResolveTypeTokenInvalidTokenType2 () {
76 module.ResolveTypeHandle (0x4000001);
81 [Test]
82 public void ResolveFieldToken () {
83 FieldInfo fi = typeof (ModuleHandleTest).GetField ("foo");
85 AssertEquals (fi, FieldInfo.GetFieldFromHandle (module.ResolveFieldHandle (fi.MetadataToken)));
88 [Test]
89 [ExpectedException (typeof (ArgumentNullException))]
90 public void ResolveFieldTokenInvalidHandle () {
91 ModuleHandle.EmptyHandle.ResolveFieldHandle (typeof (ModuleHandleTest).MetadataToken);
94 [Test]
95 [ExpectedException (typeof (Exception))]
96 public void ResolveFieldTokenInvalidTokenType () {
97 module.ResolveFieldHandle (1234);
100 [Test]
101 [ExpectedException (typeof (Exception))]
102 public void ResolveFieldTokenInvalidTokenType2 () {
103 /* A typedef */
104 module.ResolveFieldHandle (0x2000002);
107 [Test]
108 [ExpectedException (typeof (Exception))]
109 public void ResolveFieldTokenInvalidTokenType3 () {
110 /* A memberref which points to a method */
111 module.ResolveFieldHandle (typeof (Console).GetMethod ("ReadLine").MetadataToken);
114 [Test]
115 [ExpectedException (typeof (Exception))]
116 public void ResolveFieldTokenInvalidToken () {
117 /* An out-of-range field def */
118 module.ResolveFieldHandle (0x40f0001);
124 [Test]
125 public void ResolveMethodToken () {
126 MethodInfo mi = typeof (ModuleHandleTest).GetMethod ("ResolveMethodToken");
128 AssertEquals (mi, MethodInfo.GetMethodFromHandle (module.ResolveMethodHandle (mi.MetadataToken)));
131 [Test]
132 [ExpectedException (typeof (ArgumentNullException))]
133 public void ResolveMethodTokenInvalidHandle () {
134 ModuleHandle.EmptyHandle.ResolveMethodHandle (typeof (ModuleHandleTest).GetMethod ("ResolveMethodToken").MetadataToken);
137 [Test]
138 [ExpectedException (typeof (Exception))]
139 public void ResolveMethodTokenInvalidTokenType () {
140 module.ResolveMethodHandle (1234);
143 [Test]
144 [ExpectedException (typeof (Exception))]
145 public void ResolveMethodTokenInvalidTokenType2 () {
146 /* A typedef */
147 module.ResolveMethodHandle (0x2000002);
150 [Test]
151 [ExpectedException (typeof (Exception))]
152 public void ResolveMethodTokenInvalidTokenType3 () {
153 /* A memberref which points to a field */
154 module.ResolveMethodHandle (typeof (Type).GetField ("Delimiter").MetadataToken);
157 [Test]
158 [ExpectedException (typeof (Exception))]
159 public void ResolveMethodTokenInvalidToken () {
160 /* An out-of-range method def */
161 module.ResolveMethodHandle (0x60f0001);
164 [Test]
165 public void GetPEKind () {
166 PortableExecutableKind pe_kind;
167 ImageFileMachine machine;
169 module.GetPEKind (out pe_kind, out machine);
171 AssertEquals (PortableExecutableKind.ILOnly, pe_kind);
174 [Test]
175 [ExpectedException (typeof (ArgumentNullException))]
176 public void GetPEKindInvalidHandle () {
177 PortableExecutableKind pe_kind;
178 ImageFileMachine machine;
180 ModuleHandle.EmptyHandle.GetPEKind (out pe_kind, out machine);
185 #endif