package org.castor.cpa.test.test1073;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.castor.cpa.test.framework.CPATestCase;
import org.castor.cpa.test.framework.xml.types.DatabaseEngineType;
import java.sql.Connection;
import org.exolab.castor.jdo.Database;
import org.exolab.castor.jdo.JDOManager;
import org.exolab.castor.types.Time;
public final class TestTime extends CPATestCase {
private static final String DBNAME = "test1073";
private static final String MAPPING = "/org/castor/cpa/test/test1073/mapping.xml";
public static Test suite() throws Exception {
TestSuite suite = new TestSuite(TestTime.class.getName());
suite.addTest(new TestTime("delete"));
suite.addTest(new TestTime("create"));
suite.addTest(new TestTime("update"));
suite.addTest(new TestTime("load"));
return suite;
}
public TestTime(final String name) {
super(name);
}
// Test are only included/excluded for engines that have been tested with this test suite.
public boolean include(final DatabaseEngineType engine) {
return (engine == DatabaseEngineType.DERBY)
|| (engine == DatabaseEngineType.HSQL)
|| (engine == DatabaseEngineType.MYSQL)
|| (engine == DatabaseEngineType.ORACLE)
|| (engine == DatabaseEngineType.POSTGRESQL)
|| (engine == DatabaseEngineType.SAPDB)
|| (engine == DatabaseEngineType.SQL_SERVER);
}
public void delete() throws Exception {
JDOManager jdo = getJDOManager(DBNAME, MAPPING);
// Delete all records to avoid problems with previous runs
Connection conn = jdo.getConnectionFactory().createConnection();
conn.setAutoCommit(true);
conn.createStatement().execute("DELETE FROM test1073_time");
conn.close();
}
public void create() throws Exception {
Database db = getJDOManager(DBNAME, MAPPING).getDatabase();
TimeEntity entity = new TimeEntity();
entity.setId(1);
entity.setLongTimeLocal(null);
entity.setLongTimeUTC(null);
entity.setStringTimeLocal(null);
entity.setStringTimeUTC(null);
db.begin();
db.create(entity);
db.commit();
db.close();
}
public void update() throws Exception {
Database db = getJDOManager(DBNAME, MAPPING).getDatabase();
db.begin();
TimeEntity entity = db.load(TimeEntity.class, new Integer(1));
assertEquals(1, entity.getId());
assertNull(entity.getLongTimeLocal());
assertNull(entity.getLongTimeUTC());
assertNull(entity.getStringTimeLocal());
assertNull(entity.getStringTimeUTC());
entity.setLongTimeLocal(new Time("12:34:56.789"));
entity.setLongTimeUTC(new Time("23:11:22-05:00"));
entity.setStringTimeLocal(new Time("11:11:11.111"));
entity.setStringTimeUTC(new Time("02:33:44+03:00"));
db.commit();
db.close();
}
public void load() throws Exception {
Database db = getJDOManager(DBNAME, MAPPING).getDatabase();
db.begin();
TimeEntity entity = db.load(TimeEntity.class, new Integer(1));
assertEquals(1, entity.getId());
assertTrue(new Time("12:34:56.789").equals(entity.getLongTimeLocal()));
assertTrue(new Time("23:11:22-05:00").equals(entity.getLongTimeUTC()));
assertTrue(new Time("11:11:11.111").equals(entity.getStringTimeLocal()));
assertTrue(new Time("02:33:44+03:00").equals(entity.getStringTimeUTC()));
db.commit();
db.close();
}
}