1 21 package com.db4o.db4ounit.jre12.assorted; 22 23 import java.io.*; 24 import java.math.*; 25 26 import com.db4o.*; 27 import com.db4o.config.*; 28 29 import db4ounit.*; 30 31 public class TranslatorStoredClassesTestCase implements TestCase { 32 33 private final static String FILENAME="translator.yap"; 34 35 public static class DataRawChild implements Serializable { 36 public int _id; 37 38 public DataRawChild(int id) { 39 _id=id; 40 } 41 } 42 43 public static class DataRawParent { 44 public DataRawChild _child; 45 46 public DataRawParent(int id) { 47 _child=new DataRawChild(id); 48 } 49 } 50 51 public static class DataBigDecimal { 52 public BigDecimal _bd; 53 54 public DataBigDecimal(int id) { 55 _bd=new BigDecimal(String.valueOf(id)); 56 } 57 } 58 59 public void testBigDecimal() { 60 assertStoredClassesAfterTranslator(BigDecimal.class,new DataBigDecimal(42)); 61 } 62 63 public void testRaw() { 64 assertStoredClassesAfterTranslator(DataRawChild.class,new DataRawParent(42)); 65 } 66 67 public void assertStoredClassesAfterTranslator(Class translated,Object data) { 68 createFile(translated,data); 69 check(translated); 70 } 71 72 private static void createFile(Class translated,Object data) { 73 new File(FILENAME).delete(); 74 ObjectContainer server = db(translated,new TSerializable()); 75 server.set(data); 76 server.close(); 77 } 78 79 private static void check(Class translated) { 80 ObjectContainer db=db(translated,null); 81 db.ext().storedClasses(); 82 db.close(); 83 } 84 85 private static ObjectContainer db(Class translated,ObjectTranslator translator) { 86 Configuration config=Db4o.newConfiguration(); 87 config.objectClass(translated).translate(translator); 88 return Db4o.openFile(config,FILENAME); 89 } 90 91 } 92 | Popular Tags |