Merge branch 'master' of github.com:mono/mono
[mono.git] / mcs / class / Mono.CSharp / Test / Evaluator / TypesTest.cs
1 using System;
2 using NUnit.Framework;
3 using Mono.CSharp;
4 using System.Collections;
5
6 namespace MonoTests.EvaluatorTest
7 {
8         [TestFixture]
9         public class TypesTest : EvaluatorFixture
10         {
11                 [Test]
12                 public void SimpleTypeStaticMethod ()
13                 {
14                         object res;
15                         Evaluator.Run ("class Y { public static int Test () { return 5; }}");
16                         res = Evaluator.Evaluate ("Y.Test ();");
17                         Assert.AreEqual (5, res, "#1");
18                 }
19
20                 [Test]
21                 public void SameTypeNameRedefinition ()
22                 {
23                         Evaluator.Run ("class X { }");
24                         Evaluator.Run ("class X { public static void Foo () { throw new System.ApplicationException (); } }");
25                         Evaluator.Run ("class X {}");
26                         Evaluator.Run ("class X { public static string Foo () { return \"Test\"; } }");
27                         object res = Evaluator.Evaluate ("X.Foo ();");
28                         Assert.AreEqual ("Test", res);
29                 }
30
31                 [Test]
32                 public void SimpleConstructor ()
33                 {
34                         Evaluator.Run ("class Y2 { public int Value; public Y2 (){ Value = 99; } }");
35                         Evaluator.Run ("var a = new Y2 ();");
36                         object res = Evaluator.Evaluate ("a.Value;");
37                         Assert.AreEqual (99, res);
38                 }
39
40                 [Test]
41                 public void TypeOfType ()
42                 {
43                         Evaluator.Run ("struct Z { }");
44                         object res = Evaluator.Evaluate ("typeof (Z);");
45                         Assert.AreEqual ("Z", res.ToString ());
46                 }
47         }
48 }