Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/ognl/test/LambdaExpressionTest.java


1   //--------------------------------------------------------------------------
2   //  Copyright (c) 2004, Drew Davidson and Luke Blanshard
3   //  All rights reserved.
4   //
5   //  Redistribution and use in source and binary forms, with or without
6   //  modification, are permitted provided that the following conditions are
7   //  met:
8   //
9   //  Redistributions of source code must retain the above copyright notice,
10  //  this list of conditions and the following disclaimer.
11  //  Redistributions in binary form must reproduce the above copyright
12  //  notice, this list of conditions and the following disclaimer in the
13  //  documentation and/or other materials provided with the distribution.
14  //  Neither the name of the Drew Davidson nor the names of its contributors
15  //  may be used to endorse or promote products derived from this software
16  //  without specific prior written permission.
17  //
18  //  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  //  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  //  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21  //  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22  //  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23  //  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24  //  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
25  //  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26  //  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27  //  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
28  //  THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
29  //  DAMAGE.
30  //--------------------------------------------------------------------------
31  package org.ognl.test;
32  
33  import java.math.*;
34  import java.util.*;
35  import junit.framework.TestSuite;
36  import org.ognl.test.objects.Root;
37  
38  public class LambdaExpressionTest extends OgnlTestCase
39  {
40      private static Object[][]       TESTS = {
41                                            // Lambda expressions
42                                          { null, "#a=:[33](20).longValue().{0}.toArray().length", new Integer(33) },
43                                          { null, "#fact=:[#this<=1? 1 : #fact(#this-1) * #this], #fact(30)", new Integer(1409286144) },
44                                          { null, "#fact=:[#this<=1? 1 : #fact(#this-1) * #this], #fact(30L)", new Long(-8764578968847253504L) },
45                                          { null, "#fact=:[#this<=1? 1 : #fact(#this-1) * #this], #fact(30h)", new BigInteger("265252859812191058636308480000000") },
46                                          { null, "#bump = :[ #this.{ #this + 1 } ], (#bump)({ 1, 2, 3 })", new ArrayList(Arrays.asList(new Integer[] { new Integer(2), new Integer(3), new Integer(4) })) },
47                                          { null, "#call = :[ \"calling \" + [0] + \" on \" + [1] ], (#call)({ \"x\", \"y\" })", "calling x on y" },
48                                      };
49  
50    /*===================================================================
51      Public static methods
52      ===================================================================*/
53      public static TestSuite suite()
54      {
55          TestSuite       result = new TestSuite();
56  
57          for (int i = 0; i < TESTS.length; i++) {
58              result.addTest(new LambdaExpressionTest((String)TESTS[i][1], TESTS[i][0], (String)TESTS[i][1], TESTS[i][2]));
59          }
60          return result;
61      }
62  
63    /*===================================================================
64      Constructors
65      ===================================================================*/
66    public LambdaExpressionTest()
67    {
68        super();
69    }
70  
71    public LambdaExpressionTest(String name)
72    {
73        super(name);
74    }
75  
76      public LambdaExpressionTest(String name, Object root, String expressionString, Object expectedResult, Object setValue, Object expectedAfterSetResult)
77      {
78          super(name, root, expressionString, expectedResult, setValue, expectedAfterSetResult);
79      }
80  
81      public LambdaExpressionTest(String name, Object root, String expressionString, Object expectedResult, Object setValue)
82      {
83          super(name, root, expressionString, expectedResult, setValue);
84      }
85  
86      public LambdaExpressionTest(String name, Object root, String expressionString, Object expectedResult)
87      {
88          super(name, root, expressionString, expectedResult);
89      }
90  }