package com.ikokoon.serenity.persistence; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; import java.io.File; import org.junit.Test; import com.ikokoon.serenity.ATest; import com.ikokoon.serenity.model.Class; import com.ikokoon.serenity.model.Method; import com.ikokoon.toolkit.Toolkit; public class DataBaseToolkitTest extends ATest { @Test public void copy() { File odbDataBaseFile = new File("./src/test/resources/isearch/merge/serenity.odb"); File ramDataBaseFile = new File("./src/test/resources/isearch/merge/serenity.ram"); File jarDataBaseFile = new File("./src/test/resources/isearch/merge/jar.odb"); File tagDataBaseFile = new File("./src/test/resources/isearch/merge/tag.odb"); Toolkit.deleteFile(odbDataBaseFile, 3); Toolkit.deleteFile(ramDataBaseFile, 3); IDataBase odbDataBase = IDataBase.DataBaseManager.getDataBase(DataBaseOdb.class, odbDataBaseFile.getAbsolutePath(), null); DataBaseToolkit.clear(odbDataBase); odbDataBase.close(); IDataBase sourceDataBase = IDataBase.DataBaseManager.getDataBase(DataBaseOdb.class, jarDataBaseFile.getAbsolutePath(), null); odbDataBase = IDataBase.DataBaseManager.getDataBase(DataBaseOdb.class, odbDataBaseFile.getAbsolutePath(), null); IDataBase ramDataBase = IDataBase.DataBaseManager.getDataBase(DataBaseRam.class, ramDataBaseFile.getAbsolutePath(), odbDataBase); Class<?, ?> klass = ramDataBase.find(Class.class, Toolkit.hash("com.ikokoon.search.action.Index")); assertNull(klass); klass = ramDataBase.find(Class.class, Toolkit.hash("com.ikokoon.search.tag.SpellingTag")); assertNull(klass); DataBaseToolkit.copyDataBase(sourceDataBase, ramDataBase); sourceDataBase.close(); // odbDataBase.close(); ramDataBase.close(); sourceDataBase = IDataBase.DataBaseManager.getDataBase(DataBaseOdb.class, tagDataBaseFile.getAbsolutePath(), null); odbDataBase = IDataBase.DataBaseManager.getDataBase(DataBaseOdb.class, odbDataBaseFile.getAbsolutePath(), null); ramDataBase = IDataBase.DataBaseManager.getDataBase(DataBaseRam.class, ramDataBaseFile.getAbsolutePath(), odbDataBase); klass = odbDataBase.find(Class.class, Toolkit.hash("com.ikokoon.search.action.Index")); assertNotNull(klass); klass = odbDataBase.find(Class.class, Toolkit.hash("com.ikokoon.search.tag.SpellingTag")); assertNull(klass); DataBaseToolkit.copyDataBase(sourceDataBase, ramDataBase); sourceDataBase.close(); // odbDataBase.close(); ramDataBase.close(); odbDataBase = IDataBase.DataBaseManager.getDataBase(DataBaseOdb.class, odbDataBaseFile.getAbsolutePath(), null); klass = odbDataBase.find(Class.class, Toolkit.hash("com.ikokoon.search.action.Index")); assertNotNull(klass); klass = odbDataBase.find(Class.class, Toolkit.hash("com.ikokoon.search.tag.SpellingTag")); assertNotNull(klass); odbDataBase.close(); } @Test @SuppressWarnings("unchecked") public void clear() { String dataBaseFile = "./src/test/resources/dummy.odb"; IDataBase dataBase = IDataBase.DataBaseManager.getDataBase(DataBaseOdb.class, dataBaseFile, null); Class<?, ?> klass = new Class<Package, Method>(); klass.setId(Long.MAX_VALUE); dataBase.persist(klass); klass = dataBase.find(Class.class, klass.getId()); assertNotNull(klass); DataBaseToolkit.clear(dataBase); dataBase.close(); dataBase = IDataBase.DataBaseManager.getDataBase(DataBaseOdb.class, dataBaseFile, null); klass = dataBase.find(Class.class, klass.getId()); assertNull(klass); dataBase.close(); Toolkit.deleteFile(new File(dataBaseFile), 3); } }