package org.castor.cpa.test.test2177; import junit.framework.Test; import junit.framework.TestSuite; import org.castor.core.util.AbstractProperties; import org.castor.cpa.CPAProperties; import org.castor.cpa.test.framework.CPATestCase; import org.castor.cpa.test.framework.xml.types.DatabaseEngineType; import org.exolab.castor.jdo.Database; public final class Test2177 extends CPATestCase { private static final String DBNAME = "test2177"; private static final String MAPPING = "/org/castor/cpa/test/test2177/mapping.xml"; public static Test suite() { TestSuite suite = new TestSuite(Test2177.class.getName()); suite.addTest(new Test2177("testLoadEntity1")); suite.addTest(new Test2177("testCreateEntity2")); suite.addTest(new Test2177("testUpdateEntity2")); suite.addTest(new Test2177("testDeleteEntity2")); return suite; } // 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); } private String _memConvertors; public Test2177(final String name) { super(name); } protected void setUp() throws Exception { super.setUp(); AbstractProperties properties = getProperties(); _memConvertors = properties.getString(CPAProperties.TYPE_CONVERTORS); StringBuffer convertors = new StringBuffer(); convertors.append(_memConvertors); convertors.append(", "); convertors.append(FromCustomTypeConvertor.class.getName()); convertors.append(", "); convertors.append(ToCustomTypeConvertor.class.getName()); properties.put(CPAProperties.TYPE_CONVERTORS, convertors.toString()); } protected void tearDown() throws Exception { AbstractProperties properties = getProperties(); properties.put(CPAProperties.TYPE_CONVERTORS, _memConvertors); super.tearDown(); } public void testLoadEntity1() throws Exception { Database db = getJDOManager(DBNAME, MAPPING).getDatabase(); db.begin(); Entity entity = db.load(Entity.class, new Integer(1)); assertNotNull(entity); assertEquals(new Integer(1), entity.getId()); assertNotNull(entity.getName()); assertEquals("entity1", entity.getName().toString()); db.commit(); db.close(); } public void testCreateEntity2() throws Exception { Database db = getJDOManager(DBNAME, MAPPING).getDatabase(); db.begin(); Entity entity = new Entity(); entity.setId(new Integer(2)); entity.setName(new CustomType("entity2 created")); db.create(entity); db.commit(); db.close(); } public void testUpdateEntity2() throws Exception { Database db = getJDOManager(DBNAME, MAPPING).getDatabase(); db.begin(); Entity entity = db.load(Entity.class, new Integer(2)); assertNotNull(entity); assertEquals(new Integer(2), entity.getId()); assertNotNull(entity.getName()); assertEquals("entity2 created", entity.getName().toString()); entity.setName(new CustomType("entity2 updated")); db.commit(); db.close(); } public void testDeleteEntity2() throws Exception { Database db = getJDOManager(DBNAME, MAPPING).getDatabase(); db.begin(); Entity entity = db.load(Entity.class, new Integer(2)); assertNotNull(entity); assertEquals(new Integer(2), entity.getId()); assertNotNull(entity.getName()); assertEquals("entity2 updated", entity.getName().toString()); db.remove(entity); db.commit(); db.close(); } }