Index: topia/src/test/org/codelutin/topia/persistence/AbstractPersistenceStorageTestCase.java diff -u topia/src/test/org/codelutin/topia/persistence/AbstractPersistenceStorageTestCase.java:1.9 topia/src/test/org/codelutin/topia/persistence/AbstractPersistenceStorageTestCase.java:1.10 --- topia/src/test/org/codelutin/topia/persistence/AbstractPersistenceStorageTestCase.java:1.9 Wed Aug 24 15:03:45 2005 +++ topia/src/test/org/codelutin/topia/persistence/AbstractPersistenceStorageTestCase.java Tue Aug 30 13:19:53 2005 @@ -23,9 +23,9 @@ * Created: 21 juillet 2005 19:57:28 CEST * * @author Benjamin POUSSIN - * @version $Revision: 1.9 $ + * @version $Revision: 1.10 $ * - * Last update: $Date: 2005/08/24 15:03:45 $ + * Last update: $Date: 2005/08/30 13:19:53 $ * by : $Author: bpoussin $ */ @@ -39,6 +39,7 @@ import junit.framework.TestCase; import org.codelutin.topia.TopiaConst; import org.codelutin.topia.TopiaId; +import org.codelutin.util.CallAnalyse; public abstract class AbstractPersistenceStorageTestCase extends TestCase { // TopiaPersistenceStorageTest @@ -55,294 +56,340 @@ abstract public PersistenceStorage getPersistenceStorage(Properties config) throws Exception ; public void setUp() throws Exception { - Properties config = getConfig(); - config.put("context.class", "org.codelutin.topia.persistence.TopiaTestContext"); - //Pour éviter les warnings - config.put("context.helper.security", "org.codelutin.topia.security.TopiaSecurityHelper"); - testContext = TopiaTestContext.getContext(config); - storage = getPersistenceStorage(config); - tth = new TopiaTransactionHelper(config); + CallAnalyse.activate(); + CallAnalyse.getThreadStatistics().clear(); + try{ + CallAnalyse.enter(AbstractPersistenceStorageTestCase.class.getName() + ".setUp"); + Properties config = getConfig(); + config.put("context.class", "org.codelutin.topia.persistence.TopiaTestContext"); + //Pour éviter les warnings + config.put("context.helper.security", "org.codelutin.topia.security.TopiaSecurityHelper"); + testContext = TopiaTestContext.getContext(config); + storage = getPersistenceStorage(config); + tth = new TopiaTransactionHelper(config); + } finally { + CallAnalyse.exit(AbstractPersistenceStorageTestCase.class.getName() + ".setUp"); + } } - public void testCommit() throws Exception { - TopiaTestContext child1 = testContext.createChild(); - child1.setTransaction(tth.newTranstaction()); - - String id = TopiaId.create(ObjectTestEntity.class); - - TopiaPersistenceObject o = new TopiaPersistenceObject(id).initDefaultValue(); - TopiaPersistenceObject o2 = new TopiaPersistenceObject(id); + public void tearDown() throws Exception { + System.out.println(CallAnalyse.getThreadStatistics()); + CallAnalyse.getThreadStatistics().clear(); + } - o.setField("name", "testCommit"); - storage.beginTransaction(child1); - storage.store(child1, o); + public void testCommit() throws Exception { + try{ + CallAnalyse.enter(AbstractPersistenceStorageTestCase.class.getName() + ".testCommit"); + TopiaTestContext child1 = testContext.createChild(); + child1.setTransaction(tth.newTranstaction()); - assertTrue(storage.exists(child1, id)); - storage.commitTransaction(child1); + String id = TopiaId.create(ObjectTestEntity.class); -// TopiaTransaction tt3 = tth.newTranstaction(); - TopiaTestContext child2 = testContext.createChild(); - child2.setTransaction(tth.newTranstaction()); + TopiaPersistenceObject o = new TopiaPersistenceObject(id).initDefaultValue(); + TopiaPersistenceObject o2 = new TopiaPersistenceObject(id); - assertTrue(storage.exists(child1, id)); - assertTrue(storage.exists(child2, id)); + o.setField("name", "testCommit"); + storage.beginTransaction(child1); + storage.store(child1, o); - o2.getField("name"); - storage.restore(child2, o2); + assertTrue(storage.exists(child1, id)); + storage.commitTransaction(child1); - assertEquals("testCommit", o.getData().getField("name")); - assertEquals("testCommit", o2.getData().getField("name")); + // TopiaTransaction tt3 = tth.newTranstaction(); + TopiaTestContext child2 = testContext.createChild(); + child2.setTransaction(tth.newTranstaction()); + + assertTrue(storage.exists(child1, id)); + assertTrue(storage.exists(child2, id)); + + o2.getField("name"); + storage.restore(child2, o2); + + assertEquals("testCommit", o.getData().getField("name")); + assertEquals("testCommit", o2.getData().getField("name")); + } finally { + CallAnalyse.exit(AbstractPersistenceStorageTestCase.class.getName() + ".testCommit"); + } } public void testRollback() throws Exception { - TopiaTestContext child1 = testContext.createChild(); - child1.setTransaction(tth.newTranstaction()); - String id = TopiaId.create(ObjectTestEntity.class); - TopiaPersistenceObject o = new TopiaPersistenceObject(id).initDefaultValue(); + try{ + CallAnalyse.enter(AbstractPersistenceStorageTestCase.class.getName() + ".testRollback"); + TopiaTestContext child1 = testContext.createChild(); + child1.setTransaction(tth.newTranstaction()); + String id = TopiaId.create(ObjectTestEntity.class); + TopiaPersistenceObject o = new TopiaPersistenceObject(id).initDefaultValue(); - o.setField("name", "testRollback"); - storage.beginTransaction(child1); - storage.store(child1, o); + o.setField("name", "testRollback"); + storage.beginTransaction(child1); + storage.store(child1, o); - assertTrue(storage.exists(child1, id)); + assertTrue(storage.exists(child1, id)); - storage.rollbackTransaction(child1); + storage.rollbackTransaction(child1); - assertFalse(storage.exists(child1, id)); + assertFalse(storage.exists(child1, id)); + } finally { + CallAnalyse.exit(AbstractPersistenceStorageTestCase.class.getName() + ".testRollback"); + } } public void testIsolation() throws Exception { - TopiaTestContext child1 = testContext.createChild(); - child1.setTransaction(tth.newTranstaction()); - TopiaTestContext child2 = testContext.createChild(); - child2.setTransaction(tth.newTranstaction()); - - String id = TopiaId.create(ObjectTestEntity.class); - - TopiaPersistenceObject o = new TopiaPersistenceObject(id).initDefaultValue(); - TopiaPersistenceObject o2 = new TopiaPersistenceObject(id); + try{ + CallAnalyse.enter(AbstractPersistenceStorageTestCase.class.getName() + ".testIsolation"); + TopiaTestContext child1 = testContext.createChild(); + child1.setTransaction(tth.newTranstaction()); + TopiaTestContext child2 = testContext.createChild(); + child2.setTransaction(tth.newTranstaction()); - o.setField("name", "testIsolation"); - storage.beginTransaction(child1); - storage.store(child1, o); - - assertTrue(storage.exists(child1, id)); - assertFalse(storage.exists(child2, id)); - storage.commitTransaction(child1); - - TopiaTestContext child3 = testContext.createChild(); - child3.setTransaction(tth.newTranstaction()); - - assertTrue(storage.exists(child1, id)); - assertFalse(storage.exists(child2, id)); - assertTrue(storage.exists(child3, id)); - - o.setField("name", "testIsolationBis"); - storage.store(child1, o); + String id = TopiaId.create(ObjectTestEntity.class); - assertTrue(storage.exists(child1, id)); - assertFalse(storage.exists(child2, id)); - assertTrue(storage.exists(child3, id)); + TopiaPersistenceObject o = new TopiaPersistenceObject(id).initDefaultValue(); + TopiaPersistenceObject o2 = new TopiaPersistenceObject(id); - storage.commitTransaction(child1); + o.setField("name", "testIsolation"); + storage.beginTransaction(child1); + storage.store(child1, o); - assertTrue(storage.exists(child1, id)); - assertFalse(storage.exists(child2, id)); - assertTrue(storage.exists(child3, id)); + assertTrue(storage.exists(child1, id)); + assertFalse(storage.exists(child2, id)); + storage.commitTransaction(child1); + + TopiaTestContext child3 = testContext.createChild(); + child3.setTransaction(tth.newTranstaction()); + + assertTrue(storage.exists(child1, id)); + assertFalse(storage.exists(child2, id)); + assertTrue(storage.exists(child3, id)); - o2.getField("name"); - storage.restore(child3, o2); + o.setField("name", "testIsolationBis"); + storage.store(child1, o); - assertFalse(o.getData().equals(o2.getData())); - assertEquals("testIsolationBis", o.getData().getField("name")); - assertEquals("testIsolation", o2.getData().getField("name")); + assertTrue(storage.exists(child1, id)); + assertFalse(storage.exists(child2, id)); + assertTrue(storage.exists(child3, id)); + + storage.commitTransaction(child1); + + assertTrue(storage.exists(child1, id)); + assertFalse(storage.exists(child2, id)); + assertTrue(storage.exists(child3, id)); + + o2.getField("name"); + storage.restore(child3, o2); + + assertFalse(o.getData().equals(o2.getData())); + assertEquals("testIsolationBis", o.getData().getField("name")); + assertEquals("testIsolation", o2.getData().getField("name")); + } finally { + CallAnalyse.exit(AbstractPersistenceStorageTestCase.class.getName() + ".testIsolation"); + } } public void testDelete() throws Exception { - TopiaTestContext child1 = testContext.createChild(); - child1.setTransaction(tth.newTranstaction()); + try{ + CallAnalyse.enter(AbstractPersistenceStorageTestCase.class.getName() + ".testDelete"); + TopiaTestContext child1 = testContext.createChild(); + child1.setTransaction(tth.newTranstaction()); - String id = TopiaId.create(ObjectTestEntity.class); + String id = TopiaId.create(ObjectTestEntity.class); - TopiaPersistenceObject o = new TopiaPersistenceObject(id).initDefaultValue(); + TopiaPersistenceObject o = new TopiaPersistenceObject(id).initDefaultValue(); - o.setField("name", "testdelete"); - storage.beginTransaction(child1); - storage.store(child1, o); + o.setField("name", "testdelete"); + storage.beginTransaction(child1); + storage.store(child1, o); - assertTrue(storage.exists(child1, id)); - storage.commitTransaction(child1); + assertTrue(storage.exists(child1, id)); + storage.commitTransaction(child1); - TopiaTestContext child2 = testContext.createChild(); - child2.setTransaction(tth.newTranstaction()); + TopiaTestContext child2 = testContext.createChild(); + child2.setTransaction(tth.newTranstaction()); - assertTrue(storage.exists(child1, id)); - assertTrue(storage.exists(child2, id)); + assertTrue(storage.exists(child1, id)); + assertTrue(storage.exists(child2, id)); - o.getManagement().setDeleted(true); - storage.store(child1, o); + o.getManagement().setDeleted(true); + storage.store(child1, o); - assertFalse(storage.exists(child1, id)); - assertTrue(storage.exists(child2, id)); + assertFalse(storage.exists(child1, id)); + assertTrue(storage.exists(child2, id)); - storage.commitTransaction(child1); + storage.commitTransaction(child1); - assertFalse(storage.exists(child1, id)); - assertTrue(storage.exists(child2, id)); + assertFalse(storage.exists(child1, id)); + assertTrue(storage.exists(child2, id)); - TopiaTestContext child3 = testContext.createChild(); - child3.setTransaction(tth.newTranstaction()); + TopiaTestContext child3 = testContext.createChild(); + child3.setTransaction(tth.newTranstaction()); - assertFalse(storage.exists(child1, id)); - assertFalse(storage.exists(child3, id)); + assertFalse(storage.exists(child1, id)); + assertFalse(storage.exists(child3, id)); + } finally { + CallAnalyse.exit(AbstractPersistenceStorageTestCase.class.getName() + ".testDelete"); + } } public void testGetAllId() throws Exception { - TopiaTestContext child1 = testContext.createChild(); - child1.setTransaction(tth.newTranstaction()); - - Collection ids = storage.getAllId(child1); - log.info("ids.size: " + ids.size()); - Collection os = new ArrayList(ids.size()); - System.out.println("suppression des id: " + ids); - - storage.beginTransaction(child1); - for(String id: ids){ - TopiaPersistenceObject o = new TopiaPersistenceObject(id); - storage.restore(child1, o); - o.getManagement().setDeleted(true); - os.add(o); - } + try{ + CallAnalyse.enter(AbstractPersistenceStorageTestCase.class.getName() + ".testGetAllId"); + TopiaTestContext child1 = testContext.createChild(); + child1.setTransaction(tth.newTranstaction()); + + Collection ids = storage.getAllId(child1); + log.info("ids.size: " + ids.size()); + Collection os = new ArrayList(ids.size()); + System.out.println("suppression des id: " + ids); + + storage.beginTransaction(child1); + for(String id: ids){ + TopiaPersistenceObject o = new TopiaPersistenceObject(id); + storage.restore(child1, o); + o.getManagement().setDeleted(true); + os.add(o); + } - storage.store(child1, os); + storage.store(child1, os); - Collection idsvide = storage.getAllId(child1); - System.out.println("list d'id vide ? " + idsvide); - assertEquals(0, idsvide.size()); - - TopiaTestContext child2 = testContext.createChild(); - child2.setTransaction(tth.newTranstaction()); - Collection ids2 = storage.getAllId(child2); - assertEquals(ids, ids2); - - storage.commitTransaction(child1); - - TopiaTestContext child3 = testContext.createChild(); - child3.setTransaction(tth.newTranstaction()); - Collection ids3 = storage.getAllId(child3); - assertEquals(0, ids3.size()); + Collection idsvide = storage.getAllId(child1); + System.out.println("list d'id vide ? " + idsvide); + assertEquals(0, idsvide.size()); + + TopiaTestContext child2 = testContext.createChild(); + child2.setTransaction(tth.newTranstaction()); + Collection ids2 = storage.getAllId(child2); + assertEquals(ids, ids2); + + storage.commitTransaction(child1); + + TopiaTestContext child3 = testContext.createChild(); + child3.setTransaction(tth.newTranstaction()); + Collection ids3 = storage.getAllId(child3); + assertEquals(0, ids3.size()); + } finally { + CallAnalyse.exit(AbstractPersistenceStorageTestCase.class.getName() + ".testGetAllId"); + } } public void testDataType() throws Exception { - TopiaTestContext child1 = testContext.createChild(); - child1.setTransaction(tth.newTranstaction()); - String id = TopiaId.create(ObjectTestEntity.class); - TopiaPersistenceObject o = new TopiaPersistenceObject(id).initDefaultValue(); - TopiaPersistenceObject o2 = new TopiaPersistenceObject(id); + try{ + CallAnalyse.enter(AbstractPersistenceStorageTestCase.class.getName() + ".testDataType"); + TopiaTestContext child1 = testContext.createChild(); + child1.setTransaction(tth.newTranstaction()); + String id = TopiaId.create(ObjectTestEntity.class); + TopiaPersistenceObject o = new TopiaPersistenceObject(id).initDefaultValue(); + TopiaPersistenceObject o2 = new TopiaPersistenceObject(id); - o.setField("name", "testDataType"); - o2.getField("name"); + o.setField("name", "testDataType"); + o2.getField("name"); - o.setField("string", "string"); - o2.getField("string"); + o.setField("string", "string"); + o2.getField("string"); - o.setField("boolean", Boolean.TRUE); - o2.getField("boolean"); + o.setField("boolean", Boolean.TRUE); + o2.getField("boolean"); - o.setField("byte", Byte.valueOf((byte)1)); - o2.getField("byte"); + o.setField("byte", Byte.valueOf((byte)1)); + o2.getField("byte"); - o.setField("int", Integer.valueOf(2)); - o2.getField("int"); + o.setField("int", Integer.valueOf(2)); + o2.getField("int"); - o.setField("double", Double.valueOf(3.3)); - o2.getField("double"); + o.setField("double", Double.valueOf(3.3)); + o2.getField("double"); - o.setField("char", Character.valueOf('c')); - o2.getField("char"); + o.setField("char", Character.valueOf('c')); + o2.getField("char"); - o.setField("object", new ArrayList()); - o2.getField("object"); + o.setField("object", new ArrayList()); + o2.getField("object"); - storage.beginTransaction(child1); - storage.store(child1, o); - storage.commitTransaction(child1); + storage.beginTransaction(child1); + storage.store(child1, o); + storage.commitTransaction(child1); - storage.restore(child1, o2); + storage.restore(child1, o2); - System.out.println("o =" + o.getData()); - System.out.println("o2=" + o2.getData()); - assertEquals(o.getData(), o2.getData()); + System.out.println("o =" + o.getData()); + System.out.println("o2=" + o2.getData()); + assertEquals(o.getData(), o2.getData()); + } finally { + CallAnalyse.exit(AbstractPersistenceStorageTestCase.class.getName() + ".testDataType"); + } } public void testPerf(int MAX) throws Exception { - if(MAX < 10){ - // en dessous de 10 ca plante lors du calcul du % - return; - } - TopiaTestContext child1 = testContext.createChild(); - child1.setTransaction(tth.newTranstaction()); + try{ + CallAnalyse.enter(AbstractPersistenceStorageTestCase.class.getName() + ".testPerf"); + if(MAX < 10){ + // en dessous de 10 ca plante lors du calcul du % + return; + } + TopiaTestContext child1 = testContext.createChild(); + child1.setTransaction(tth.newTranstaction()); - long time = System.currentTimeMillis(); + long time = System.currentTimeMillis(); - ArrayList list = new ArrayList(MAX); - for(int i=0; i list = new ArrayList(MAX); + for(int i=0; i