1 package com.atlassian.activeobjects.backup.types;
2
3 import com.atlassian.activeobjects.backup.AbstractTestActiveObjectsBackup;
4 import net.java.ao.EntityManager;
5 import net.java.ao.RawEntity;
6
7 abstract class AbstractTestTypeBackup extends AbstractTestActiveObjectsBackup {
8 final void testBackupType(BackupType<?> bt) throws Exception {
9 entityManager.migrate(bt.getEntityClass());
10
11 bt.createData(entityManager);
12 entityManager.flushAll();
13 bt.checkData(entityManager);
14
15 final String backup = save();
16 logger.debug("\n" + backup);
17
18 entityManager.migrate();
19 entityManager.flushAll();
20
21 restore(backup);
22 restore(backup);
23
24 entityManager.migrate(bt.getEntityClass());
25 bt.checkData(entityManager);
26 }
27
28 static interface BackupType<K> {
29 Class<? extends RawEntity<K>> getEntityClass();
30
31 void createData(EntityManager em) throws Exception;
32
33 void checkData(EntityManager em) throws Exception;
34 }
35 }