View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.test;
8   
9   import org.mule.module.scripting.expression.GroovyExpressionEvaluator;
10  import org.mule.tck.junit4.AbstractMuleContextTestCase;
11  import org.mule.transport.jdbc.JdbcConnector;
12  
13  import java.util.ArrayList;
14  import java.util.List;
15  
16  import org.junit.Test;
17  
18  import static org.junit.Assert.assertEquals;
19  
20  public class ComplexExpressionParsingTestCase extends AbstractMuleContextTestCase
21  {
22  
23      @Test
24      public void testComplexExpressionJdbcParsing() throws Exception
25      {
26          muleContext.getExpressionManager().registerEvaluator(new GroovyExpressionEvaluator());
27  
28          List parsedParams = new ArrayList();
29          JdbcConnector c = new JdbcConnector(muleContext);
30          String result = c.parseStatement("#[groovy:payload[0]] - #[groovy:payload[1].toUpperCase()]", parsedParams);
31  
32          assertEquals("Wrong number of parsed parameters for a statement", 2, parsedParams.size());
33          assertEquals("#[groovy:payload[0]]", parsedParams.get(0));
34          assertEquals("#[groovy:payload[1].toUpperCase()]", parsedParams.get(1));
35  
36          // it's jdbc's PreparedStatement params here
37          assertEquals("? - ?", result);
38      }
39  
40  }