[corlib] ModuleBuilder pseudo-token lookup needs to use references insteads of logica...
[mono.git] / mcs / class / Mono.CSharp / Test / Evaluator / TypesTest.cs
index 998e629a91224483dd48ce1d0b60976c80debb03..97f9e047e6d543afa711984aed41eac9e3260ecb 100644 (file)
@@ -85,10 +85,51 @@ namespace MonoTests.EvaluatorTest
                }
 
                [Test]
-               public void GG ()
+               public void MoreThanOneType ()
                {
                        Evaluator.Run ("public class D { int x; public int X { get { return x; } set { x = value;} } };");
                        Evaluator.Run ("public class C { public int Speed{get;set;}};");
                }
+
+               [Test]
+               public void StructType ()
+               {
+                       Evaluator.Run ("class C { }");
+                       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