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

Reply via email to