add tests for nullable boxing and unboxing
authorJb Evain <jbevain@gmail.com>
Tue, 27 May 2008 14:07:52 +0000 (14:07 -0000)
committerJb Evain <jbevain@gmail.com>
Tue, 27 May 2008 14:07:52 +0000 (14:07 -0000)
svn path=/trunk/mcs/; revision=104146

mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Convert.cs

index b2ebe99f502b4fed4c9caaf077833002b8212185..61f83d0e74427404902cee72cd8555ea7123c505 100644 (file)
@@ -401,5 +401,27 @@ namespace MonoTests.System.Linq.Expressions {
                        Assert.AreEqual ((short?) null, c (null));
                        Assert.AreEqual ((short?) 12, c (12));
                }
+
+               [Test]
+               public void CompiledNullableBoxing ()
+               {
+                       var p = Expression.Parameter (typeof (int?), "i");
+                       var c = Expression.Lambda<Func<int?, object>> (
+                               Expression.Convert (p, typeof (object)), p).Compile ();
+
+                       Assert.AreEqual (null, c (null));
+                       Assert.AreEqual ((object) (int?) 42, c (42));
+               }
+
+               [Test]
+               public void CompiledNullableUnboxing ()
+               {
+                       var p = Expression.Parameter (typeof (object), "o");
+                       var c = Expression.Lambda<Func<object, int?>> (
+                               Expression.Convert (p, typeof (int?)), p).Compile ();
+
+                       Assert.AreEqual ((int?) null, c (null));
+                       Assert.AreEqual ((int?) 42, c ((int?) 42));
+               }
        }
 }