Author: jbevain
Date: 2008-01-18 09:09:04 -0500 (Fri, 18 Jan 2008)
New Revision: 93255
Added:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Negate.cs
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Not.cs
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_UnaryPlus.cs
Modified:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ChangeLog
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Utils.cs
Log:
2008-01-18 Jb Evain <[EMAIL PROTECTED]>
* ExpressionTest_Negate.cs
ExpressionTest_Not.cs
ExpressionTest_UnaryPlus.cs: test for some unary operators.
Modified: trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ChangeLog
===================================================================
--- trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ChangeLog
2008-01-18 14:06:12 UTC (rev 93254)
+++ trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ChangeLog
2008-01-18 14:09:04 UTC (rev 93255)
@@ -1,3 +1,9 @@
+2008-01-18 Jb Evain <[EMAIL PROTECTED]>
+
+ * ExpressionTest_Negate.cs
+ ExpressionTest_Not.cs
+ ExpressionTest_UnaryPlus.cs: test for some unary operators.
+
2008-01-16 Jb Evain <[EMAIL PROTECTED]>
* ExpressionTest_CallWithExpression.cs: test for static method.
Added:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Negate.cs
===================================================================
---
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Negate.cs
2008-01-18 14:06:12 UTC (rev 93254)
+++
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Negate.cs
2008-01-18 14:09:04 UTC (rev 93255)
@@ -0,0 +1,88 @@
+//
+// ExpressionTest_UnaryPlus.cs
+//
+// Author:
+// Jb Evain ([EMAIL PROTECTED])
+//
+// (C) 2008 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Reflection;
+using System.Linq;
+using System.Linq.Expressions;
+using NUnit.Framework;
+
+namespace MonoTests.System.Linq.Expressions
+{
+ [TestFixture]
+ public class ExpressionTest_Negate
+ {
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void Arg1Null ()
+ {
+ Expression.Negate (null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void MethodArgNotStatic ()
+ {
+ Expression.Negate (Expression.Constant (new object ()),
typeof (OpClass).GetMethod ("WrongUnaryNotStatic"));
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void MethodArgParameterCount ()
+ {
+ Expression.Negate (Expression.Constant (new object ()),
typeof (OpClass).GetMethod ("WrongUnaryParameterCount"));
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void MethodArgReturnsVoid ()
+ {
+ Expression.Negate (Expression.Constant (new object ()),
typeof (OpClass).GetMethod ("WrongUnaryReturnVoid"));
+ }
+
+ [Test]
+ public void Number ()
+ {
+ var up = Expression.Negate (Expression.Constant (1));
+ Assert.AreEqual ("-1", up.ToString ());
+ }
+
+ [Test]
+ public void UserDefinedClass ()
+ {
+ var mi = typeof (OpClass).GetMethod
("op_UnaryNegation");
+
+ var expr = Expression.Negate (Expression.Constant (new
OpClass ()));
+ Assert.AreEqual (ExpressionType.Negate, expr.NodeType);
+ Assert.AreEqual (typeof (OpClass), expr.Type);
+ Assert.AreEqual (mi, expr.Method);
+ Assert.AreEqual ("op_UnaryNegation", expr.Method.Name);
+ Assert.AreEqual
("-value(MonoTests.System.Linq.Expressions.OpClass)", expr.ToString ());
+ }
+ }
+}
Property changes on:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Negate.cs
___________________________________________________________________
Name: svn:eol-style
+ native
Added:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Not.cs
===================================================================
---
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Not.cs
2008-01-18 14:06:12 UTC (rev 93254)
+++
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Not.cs
2008-01-18 14:09:04 UTC (rev 93255)
@@ -0,0 +1,88 @@
+//
+// ExpressionTest_UnaryPlus.cs
+//
+// Author:
+// Jb Evain ([EMAIL PROTECTED])
+//
+// (C) 2008 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Reflection;
+using System.Linq;
+using System.Linq.Expressions;
+using NUnit.Framework;
+
+namespace MonoTests.System.Linq.Expressions
+{
+ [TestFixture]
+ public class ExpressionTest_Not
+ {
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void Arg1Null ()
+ {
+ Expression.Not (null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void MethodArgNotStatic ()
+ {
+ Expression.Not (Expression.Constant (new object ()),
typeof (OpClass).GetMethod ("WrongUnaryNotStatic"));
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void MethodArgParameterCount ()
+ {
+ Expression.Not (Expression.Constant (new object ()),
typeof (OpClass).GetMethod ("WrongUnaryParameterCount"));
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void MethodArgReturnsVoid ()
+ {
+ Expression.Not (Expression.Constant (new object ()),
typeof (OpClass).GetMethod ("WrongUnaryReturnVoid"));
+ }
+
+ [Test]
+ public void Number ()
+ {
+ var up = Expression.Not (Expression.Constant (1));
+ Assert.AreEqual ("Not(1)", up.ToString ());
+ }
+
+ [Test]
+ public void UserDefinedClass ()
+ {
+ var mi = typeof (OpClass).GetMethod ("op_LogicalNot");
+
+ var expr = Expression.Not (Expression.Constant (new
OpClass ()));
+ Assert.AreEqual (ExpressionType.Not, expr.NodeType);
+ Assert.AreEqual (typeof (OpClass), expr.Type);
+ Assert.AreEqual (mi, expr.Method);
+ Assert.AreEqual ("op_LogicalNot", expr.Method.Name);
+ Assert.AreEqual
("Not(value(MonoTests.System.Linq.Expressions.OpClass))", expr.ToString
());
+ }
+ }
+}
Property changes on:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Not.cs
___________________________________________________________________
Name: svn:eol-style
+ native
Added:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_UnaryPlus.cs
===================================================================
---
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_UnaryPlus.cs
2008-01-18 14:06:12 UTC (rev 93254)
+++
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_UnaryPlus.cs
2008-01-18 14:09:04 UTC (rev 93255)
@@ -0,0 +1,88 @@
+//
+// ExpressionTest_UnaryPlus.cs
+//
+// Author:
+// Jb Evain ([EMAIL PROTECTED])
+//
+// (C) 2008 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Reflection;
+using System.Linq;
+using System.Linq.Expressions;
+using NUnit.Framework;
+
+namespace MonoTests.System.Linq.Expressions
+{
+ [TestFixture]
+ public class ExpressionTest_UnaryPlus
+ {
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void Arg1Null ()
+ {
+ Expression.UnaryPlus (null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void MethodArgNotStatic ()
+ {
+ Expression.UnaryPlus (Expression.Constant (new object
()), typeof (OpClass).GetMethod ("WrongUnaryNotStatic"));
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void MethodArgParameterCount ()
+ {
+ Expression.UnaryPlus (Expression.Constant (new object
()), typeof (OpClass).GetMethod ("WrongUnaryParameterCount"));
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]
+ public void MethodArgReturnsVoid ()
+ {
+ Expression.UnaryPlus (Expression.Constant (new object
()), typeof (OpClass).GetMethod ("WrongUnaryReturnVoid"));
+ }
+
+ [Test]
+ public void Number ()
+ {
+ var up = Expression.UnaryPlus (Expression.Constant (1));
+ Assert.AreEqual ("+1", up.ToString ());
+ }
+
+ [Test]
+ public void UserDefinedClass ()
+ {
+ var mi = typeof (OpClass).GetMethod ("op_UnaryPlus");
+
+ var expr = Expression.UnaryPlus (Expression.Constant
(new OpClass ()));
+ Assert.AreEqual (ExpressionType.UnaryPlus,
expr.NodeType);
+ Assert.AreEqual (typeof (OpClass), expr.Type);
+ Assert.AreEqual (mi, expr.Method);
+ Assert.AreEqual ("op_UnaryPlus", expr.Method.Name);
+ Assert.AreEqual
("+value(MonoTests.System.Linq.Expressions.OpClass)", expr.ToString ());
+ }
+ }
+}
Property changes on:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_UnaryPlus.cs
___________________________________________________________________
Name: svn:eol-style
+ native
Modified:
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Utils.cs
===================================================================
---
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Utils.cs
2008-01-18 14:06:12 UTC (rev 93254)
+++
trunk/mcs/class/System.Core/Test/System.Linq.Expressions/ExpressionTest_Utils.cs
2008-01-18 14:09:04 UTC (rev 93255)
@@ -1,3 +1,12 @@
+//
+// ExpressionTest_Utils.cs
+//
+// Author:
+// Federico Di Gregorio <[EMAIL PROTECTED]>
+// Jb Evain ([EMAIL PROTECTED])
+//
+// (C) 2008 Novell, Inc. (http://www.novell.com)
+//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
@@ -15,9 +24,8 @@
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-// Authors:
-// Federico Di Gregorio <[EMAIL PROTECTED]>
using System;
using System.Reflection;
@@ -88,6 +96,60 @@
{
return false;
}
+
+ public static bool operator > (OpClass a, OpClass b)
+ {
+ return false;
+ }
+
+ public static bool operator < (OpClass a, OpClass b)
+ {
+ return false;
+ }
+
+ public static bool operator >= (OpClass a, OpClass b)
+ {
+ return false;
+ }
+
+ public static bool operator <= (OpClass a, OpClass b)
+ {
+ return false;
+ }
+
+ public static OpClass operator + (OpClass a)
+ {
+ return a;
+ }
+
+ public static OpClass operator - (OpClass a)
+ {
+ return a;
+ }
+
+ public static OpClass operator ! (OpClass a)
+ {
+ return a;
+ }
+
+ public static OpClass operator ~ (OpClass a)
+ {
+ return a;
+ }
+
+ public static void WrongUnaryReturnVoid (OpClass a)
+ {
+ }
+
+ public static OpClass WrongUnaryParameterCount (OpClass a,
OpClass b)
+ {
+ return a;
+ }
+
+ public OpClass WrongUnaryNotStatic (OpClass a)
+ {
+ return a;
+ }
}
public class NoOpClass
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches