1 16 package scriptella.driver.janino; 17 18 import scriptella.AbstractTestCase; 19 import scriptella.spi.MockParametersCallbacks; 20 import scriptella.spi.ParametersCallback; 21 import scriptella.spi.QueryCallback; 22 23 import java.util.HashMap ; 24 import java.util.Map ; 25 26 32 public class JaninoBaseClassesTest extends AbstractTestCase { 33 36 public void testScript() { 37 JaninoScript js = new JaninoScript() { 38 protected void execute() throws Exception { 39 } 40 }; 41 js.setParametersCallback(MockParametersCallbacks.SIMPLE); 42 assertEquals("*1*", js.get("1")); 43 } 44 47 public void testQuery() { 48 final int[] rows = new int[1]; JaninoQuery jq = new JaninoQuery() { 50 protected void execute() throws Exception { 51 } 52 }; 53 jq.setParametersCallback(new ParametersCallback() { 55 public Object getParameter(final String name) { 56 if (!"2".equals(name)) { 57 fail("Only parameter with name 2 was not specified, but query requested "+name); 58 } 59 return null; 60 } 61 }); 62 jq.setQueryCallback(new QueryCallback() { 63 public void processRow(final ParametersCallback parameters) { 64 assertEquals("v1", parameters.getParameter("1")); 65 assertEquals(null, parameters.getParameter("2")); 66 rows[0]++; 67 } 68 }); 69 jq.set("1", "v1"); 70 jq.next(); jq.setParametersCallback(MockParametersCallbacks.UNSUPPORTED); 74 75 jq.setQueryCallback(new QueryCallback() { 76 public void processRow(final ParametersCallback parameters) { 77 assertEquals("v1", parameters.getParameter("1")); 78 assertEquals("v2", parameters.getParameter("2")); 79 rows[0]++; 80 } 81 }); 82 jq.set("1", "v1"); 83 jq.set("2", "v2"); 84 jq.next(); jq.next(new String [] {"1", "2"},new Object [] {"v1", "v2"}); Map <String ,Object > m = new HashMap <String , Object >(); 88 m.put("1", "v1"); 89 m.put("2", "v2"); 90 jq.set(m); 91 jq.next(); jq.next(m); 94 assertEquals(5, rows[0]); 95 } 96 97 } 98 | Popular Tags |