1 16 package scriptella.driver.jexl; 17 18 import scriptella.AbstractTestCase; 19 import scriptella.configuration.MockConnectionEl; 20 import scriptella.configuration.StringResource; 21 import scriptella.spi.ConnectionParameters; 22 import scriptella.spi.IndexedQueryCallback; 23 import scriptella.spi.MockDriverContext; 24 import scriptella.spi.MockParametersCallbacks; 25 import scriptella.spi.ParametersCallback; 26 import scriptella.spi.Resource; 27 28 import java.util.Collections ; 29 30 37 public class JexlConnectionTest extends AbstractTestCase { 38 private Object v; 39 public void setValue(Object v) { 40 this.v = v; 41 } 42 43 public void testExecuteScript() { 44 v=null; 45 Resource r = new StringResource("x=0;while (x < 10) {x=x+2;};obj.setValue(x)"); 46 JexlConnection jc = new JexlConnection(new ConnectionParameters(new MockConnectionEl(), new MockDriverContext())); 47 jc.executeScript(r, MockParametersCallbacks.fromMap(Collections.singletonMap("obj", this))); 48 assertEquals(10, ((Number )v).intValue()); 49 } 50 51 public void testExecuteQuery() { 52 Resource r = new StringResource("i=0;a=a0;s='test';while (i < 10) {i=i+1;query.next();}"); 53 JexlConnection jc = new JexlConnection(new ConnectionParameters(new MockConnectionEl(), new MockDriverContext())); 54 IndexedQueryCallback callback = new IndexedQueryCallback() { 55 protected void processRow(final ParametersCallback parameters, final int rowNumber) { 56 assertEquals(rowNumber+1, ((Number )parameters.getParameter("i")).intValue()); 57 assertEquals(5, ((Number )parameters.getParameter("a")).intValue()); 58 assertEquals("test", parameters.getParameter("s")); 59 } 60 }; 61 jc.executeQuery(r, MockParametersCallbacks.fromMap(Collections.singletonMap("a0", 5)), callback); 62 63 } 64 65 } 66 | Popular Tags |