1 16 package scriptella.driver.text; 17 18 import scriptella.AbstractTestCase; 19 import scriptella.spi.AbstractConnection; 20 import scriptella.spi.MockParametersCallbacks; 21 import scriptella.spi.ParametersCallback; 22 23 import java.io.IOException ; 24 import java.io.StringReader ; 25 import java.io.StringWriter ; 26 import java.util.HashMap ; 27 import java.util.Map ; 28 29 35 public class TextScriptExecutorTest extends AbstractTestCase { 36 39 public void test() throws IOException { 40 String s = " $rownum;$name;$surname;${email.trim().replaceAll('@','_at_')}\n"; 41 StringWriter out = new StringWriter (); 42 TextScriptExecutor ts = new TextScriptExecutor(out, true, "\n"); 43 Map <String ,String > m = new HashMap <String , String >(); 44 m.put("rownum", "1"); 45 m.put("name", "John"); 46 m.put("surname", "G"); 47 m.put("email", " john@nosuchhost.com"); 48 49 ParametersCallback c = MockParametersCallbacks.fromMap(m); 50 AbstractConnection.StatementCounter counter = new AbstractConnection.StatementCounter(); 51 ts.execute(new StringReader (s), c, counter); 52 assertEquals(1, counter.statements); 53 54 m.put("rownum", "2"); 55 m.put("name", "Jim"); 56 m.put("surname", "G"); 57 m.put("email", " jim@nosuchhost.com"); 58 ts.execute(new StringReader (s), c, counter); 59 assertEquals(2, counter.statements); 60 ts.close(); 61 String res = out.toString(); 62 String [] ar = res.split("\n"); 63 assertEquals("1;John;G;john_at_nosuchhost.com", ar[0]); 64 assertEquals("2;Jim;G;jim_at_nosuchhost.com", ar[1]); 65 } 66 67 } 68 | Popular Tags |