package noc.frame.db.entity; import java.sql.Connection; import java.sql.SQLException; import java.util.List; import junit.framework.TestCase; import nebula.data.n.CompanyDbPersistor; import nebula.data.n.VV; import nebula.persistor.NebulaContext; import nebula.persistor.db.ConnectionProvider; import nebula.persistor.db.DbConfiguration; import nebula.persistor.db.DerbyConfiguration; import util.PrintObejct; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; public class CompanyDbPersistorTest extends TestCase { protected final static String driverClass = "org.apache.derby.jdbc.EmbeddedDriver"; protected final static String url = "jdbc:derby:db/kao_testrun;create = true"; protected final static String userName = "user"; protected final static String userPassword = "password"; Injector injector; CompanyDbPersistor p; public CompanyDbPersistorTest() { injector = Guice.createInjector(new AbstractModule() { @Override protected void configure() { DerbyConfiguration cfg = new DerbyConfiguration(driverClass, url, userName, userPassword); this.bind(DbConfiguration.class).toInstance(cfg); this.bind(ConnectionProvider.class); this.bind(Connection.class).toProvider(ConnectionProvider.class); this.bind(CompanyDbPersistor.class); this.bind(NebulaContext.class); } }); p = injector.getInstance(CompanyDbPersistor.class); Connection conn = injector.getInstance(Connection.class); boolean done = false; // try { // conn.createStatement().execute("drop table company"); // done = true; // } catch (Exception e) { // } try { conn.createStatement().execute("select * from company"); done = true; } catch (Exception e) { } if (!done) { try { conn.createStatement().execute("drop table company"); } catch (Exception e) { } try { conn.createStatement().execute( "create table company (" + " name varchar(40) NOT NULL" + ",fullname varchar(40) " + ",lastModified BIGINT" + ",PRIMARY KEY(name) " + ")"); } catch (SQLException e) { e.printStackTrace(); } } } @Override protected void setUp() throws Exception { } public void testNop() { } public void testInsert() { VV company = new VV(4); company.data[0] = "jixian"; p.persist(company); company = p.get("jixian"); assertNotNull(company); } public void testListCompany() { VV company = new VV(4); company.data[0] = "linzhi"; p.persist(company); company = new VV(4); company.data[0] = "linweishen"; p.persist(company); List<VV> ps = p.list(); assertEquals(3, ps.size()); assertNotNull(ps.get(0)); PrintObejct.print(ps.getClass(), ps); assertEquals("linweishen", (String)ps.get(0).data[0]); assertEquals("linzhi", (String)ps.get(1).data[0]); assertEquals("jixian", (String)ps.get(2).data[0]); } public void testRemove() { VV company = p.get("jixian"); p.remove(company); } public void testRemoveAll() { p.removeAll(); } @Override public void tearDown() { } }