[corlib] ModuleBuilder pseudo-token lookup needs to use references insteads of logica...
[mono.git] / mcs / class / Mono.CSharp / Test / Evaluator / TypesTest.cs
index bd0167efbf026ec84cb9d7125973fc78d5f0f85b..97f9e047e6d543afa711984aed41eac9e3260ecb 100644 (file)
@@ -98,5 +98,38 @@ namespace MonoTests.EvaluatorTest
                        Evaluator.Run ("struct B { public string foo; public int bar; }");
                        Evaluator.Run ("B aStruct = new B { foo = \"foo\", bar = 1 };");
                }
+
+               [Test]
+               public void NestedType ()
+               {
+                       Evaluator.Run ("class A { class B { } }");
+                       Evaluator.Run ("var x = new A ();");
+               }
+
+               [Test]
+               public void DelegateType ()
+               {
+                       Evaluator.Run ("public delegate int D();");
+                       Evaluator.Run ("D d = delegate () { return 7; };");
+                       object res = Evaluator.Evaluate ("d();");
+                       Assert.AreEqual (7, res);
+               }
+
+               [Test]
+               public void ClassWithAttribute ()
+               {
+                       Evaluator.Run ("public class A : System.Attribute { }");
+                       Evaluator.Run ("[A] public class B {}");
+                       Evaluator.Run ("var attr = new B().GetType().GetCustomAttributes(false)[0];");
+
+                       object res = Evaluator.Evaluate ("attr.GetType().Name;");
+                       Assert.AreEqual ("A", res);
+               }
+
+               [Test]
+               public void EnumType ()
+               {
+                       Evaluator.Run ("public class TestClass { private TestEnum _te; public string Get() { return _te.ToString(); } } public enum TestEnum { First, Second }");
+               }
        }
 }
\ No newline at end of file