package com.ikokoon.serenity.persistence; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; import java.util.ArrayList; import java.util.List; import org.junit.Test; import com.ikokoon.serenity.ATest; import com.ikokoon.serenity.IConstants; import com.ikokoon.serenity.model.Class; import com.ikokoon.serenity.model.Line; import com.ikokoon.serenity.model.Method; import com.ikokoon.serenity.model.Package; import com.ikokoon.toolkit.Toolkit; public class DataBaseJpaTest extends ATest { @Test public void dummy() { } @SuppressWarnings("unchecked") public void memoryUsage() { long million = 1000000; long freeMemoryStart = Runtime.getRuntime().freeMemory() / million; logger.info("Free memory start : " + freeMemoryStart); IDataBase dataBase = IDataBase.DataBaseManager.getDataBase(DataBaseJpa.class, IConstants.DATABASE_FILE_JPA, mockInternalDataBase); long freeMemoryEnd = Runtime.getRuntime().freeMemory() / million; logger.info("Free memory difference after initialise : " + (freeMemoryEnd - freeMemoryStart)); Package<?, ?> pakkage = dataBase.find(Package.class, Toolkit.hash("edu.umd.cs.findbugs")); logger.info(pakkage); assertNotNull(pakkage); freeMemoryEnd = Runtime.getRuntime().freeMemory() / million; logger.info("Free memory difference after select one package : " + (freeMemoryEnd - freeMemoryStart)); pakkage = null; Runtime.getRuntime().gc(); freeMemoryEnd = Runtime.getRuntime().freeMemory() / million; logger.info("Free memory difference after null the package : " + (freeMemoryEnd - freeMemoryStart)); List<Package> packages = dataBase.find(Package.class); assertTrue(packages.size() > 0); freeMemoryEnd = Runtime.getRuntime().freeMemory() / million; logger.info("Free memory difference after select all packages : " + (freeMemoryEnd - freeMemoryStart)); packages = null; Runtime.getRuntime().gc(); freeMemoryEnd = Runtime.getRuntime().freeMemory() / million; logger.info("Free memory difference after null all the packges : " + (freeMemoryEnd - freeMemoryStart)); logger.info("Free memory end : " + freeMemoryEnd); dataBase.close(); } // @Test @SuppressWarnings("unchecked") public void persist() { Package<?, ?> pakkage = getPackage(); // dataBase.persist(klass); dataBase.persist(pakkage); pakkage = (Package) dataBase.find(Package.class, pakkage.getId()); assertNotNull(pakkage); Class<?, ?> klass = pakkage.getChildren().get(0); Long classId = klass.getId(); klass = (Class) dataBase.find(Class.class, classId); assertNotNull(klass); } // @Test @SuppressWarnings("unchecked") public void findId() { Package pakkage = getPackage(); dataBase.persist(pakkage); // 7873017250689681547, 437917821655607927 Line line = (Line) dataBase.find(Line.class, 7873017250689681547l); assertNotNull(line); } // @Test @SuppressWarnings("unchecked") public void findParameters() { Package pakkage = getPackage(); dataBase.persist(pakkage); List<Object> parameters = new ArrayList<Object>(); parameters.add(packageName); pakkage = (Package) dataBase.find(Package.class, parameters); assertNotNull(pakkage); parameters.clear(); parameters.add(className); Class klass = (Class) dataBase.find(Class.class, parameters); assertNotNull(klass); parameters.clear(); parameters.add(klass.getName()); parameters.add(methodName); parameters.add(methodDescription); Method method = (Method) dataBase.find(Method.class, parameters); assertNotNull(method); parameters.clear(); parameters.add(klass.getName()); parameters.add(method.getName()); parameters.add(lineNumber); Line line = (Line) dataBase.find(Line.class, parameters); assertNotNull(line); } // @Test @SuppressWarnings("unchecked") public void removeId() throws Exception { // java.lang.Class<T> klass, Long id Package pakkage = getPackage(); dataBase.persist(pakkage); Class klass = (Class) pakkage.getChildren().iterator().next(); klass = (Class) dataBase.find(Class.class, klass.getId()); assertNotNull(klass); dataBase.remove(Class.class, klass.getId()); klass = (Class) dataBase.find(Class.class, klass.getId()); assertNull(klass); } }