new test
authorJb Evain <jbevain@gmail.com>
Thu, 5 Jun 2008 11:35:16 +0000 (11:35 -0000)
committerJb Evain <jbevain@gmail.com>
Thu, 5 Jun 2008 11:35:16 +0000 (11:35 -0000)
svn path=/trunk/mcs/; revision=104986

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

index dea20b3f05c4150509637ad29548cb02713daa11..e2fbe4ff206bc33c72025261db5c1aec8f4a0364 100644 (file)
@@ -389,5 +389,25 @@ namespace MonoTests.System.Linq.Expressions
                        Assert.AreEqual ((bool?) true, eq (new SlotFromNullableToNullable (2), new SlotFromNullableToNullable (2)));
                        Assert.AreEqual ((bool?) false, eq (new SlotFromNullableToNullable (2), new SlotFromNullableToNullable (-2)));
                }*/
+
+               [Test]
+               [Category ("NotWorking")]
+               public void NullableBoolEqualToBool ()
+               {
+                       var l = Expression.Parameter (typeof (bool?), "l");
+                       var r = Expression.Parameter (typeof (bool?), "r");
+
+                       var node = Expression.Equal (l, r);
+                       Assert.IsTrue (node.IsLifted);
+                       Assert.IsFalse (node.IsLiftedToNull);
+                       Assert.AreEqual (typeof (bool), node.Type);
+                       Assert.IsNull (node.Method);
+
+                       var eq = Expression.Lambda<Func<bool?, bool?, bool>> (node, l, r).Compile ();
+
+                       Assert.AreEqual (false, eq (true, null));
+                       Assert.AreEqual (true, eq (null, null));
+                       Assert.AreEqual (true, eq (false, false));
+               }
        }
 }