1 4 package org.oddjob.sql; 5 6 import junit.framework.TestCase; 7 8 import org.apache.commons.beanutils.DynaBean; 9 import org.apache.commons.beanutils.PropertyUtils; 10 import org.apache.log4j.Logger; 11 import org.oddjob.Oddjob; 12 13 public class SqlJobTest extends TestCase { 14 private static final Logger logger = Logger.getLogger(SqlJobTest.class); 15 16 public void testSql() throws Exception { 17 ConnectionType ct = new ConnectionType(); 18 ct.setDriver("org.hsqldb.jdbcDriver"); 19 ct.setUrl("jdbc:hsqldb:mem:test"); 20 ct.setUsername("sa"); 21 ct.setPassword(""); 22 23 SqlJob test = new SqlJob(); 24 test.setConnection(ct.valueFor(null)); 25 test.setSql("create table TEST(greeting VARCHAR(20))"); 26 test.run(); 27 28 test.setConnection(ct.valueFor(null)); 29 test.setSql("insert into TEST values ('hello')"); 30 test.run(); 31 logger.debug("Inserted: " + test.getUpdateCount()); 32 33 test.setConnection(ct.valueFor(null)); 34 test.setSql("insert into TEST values ('goodbye')"); 35 test.run(); 36 37 test.setConnection(ct.valueFor(null)); 38 test.setSql("select * from TEST"); 39 test.run(); 40 41 assertEquals("hello", ((DynaBean) test.getRows()[0]).get("greeting")); 42 assertEquals("goodbye", ((DynaBean) test.getRows()[1]).get("greeting")); 43 } 44 45 46 public void testInOddjob() throws Exception { 47 ConnectionType ct = new ConnectionType(); 48 ct.setDriver("org.hsqldb.jdbcDriver"); 49 ct.setUrl("jdbc:hsqldb:mem:test"); 50 ct.setUsername("sa"); 51 ct.setPassword(""); 52 53 SqlJob test; 54 55 test = new SqlJob(); 56 test.setConnection(ct.valueFor(null)); 57 test.setSql("create table NUMBERS(NUMBER varchar(20))"); 58 test.run(); 59 60 Oddjob oj = new Oddjob(); 61 oj.setInput(getClass().getResourceAsStream("SqlJobTest.xml")); 62 63 oj.run(); 64 65 test = new SqlJob(); 66 test.setConnection(ct.valueFor(null)); 67 test.setSql("select count(*) \"count\" from numbers"); 68 69 test.run(); 70 71 assertEquals(new Integer (10), PropertyUtils.getProperty( 72 test, "row.count")); 73 } 74 } 75 | Popular Tags |