package de.dal33t.powerfolder.test.folder.db;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
import de.dal33t.powerfolder.disk.dao.FileInfoDAO;
import de.dal33t.powerfolder.light.FileInfo;
import de.dal33t.powerfolder.util.logging.LoggingManager;
import de.dal33t.powerfolder.util.test.TestHelper;
public class FileInfoDAOEhcacheTest extends FileInfoDAOTestCase {
private Cache cache;
private FileInfoDAO dao;
@Override
protected void setUp() throws Exception {
super.setUp();
TestHelper.cleanTestDir();
// Create a CacheManager using defaults
CacheManager manager = CacheManager.create();
// Create a Cache specifying its configuration.
cache = new Cache("test", 30000, MemoryStoreEvictionPolicy.LRU, true,
"build/test/ehcache", true, 60, 30, true, 0, null);
manager.addCache(cache);
}
@Override
protected void tearDown() throws Exception {
CacheManager.getInstance().shutdown();
super.tearDown();
}
public void xtestIndexFileInfo() {
testIndexFileInfo(dao);
}
public void xtestFindNewestVersion() {
testFindNewestVersion(dao);
}
public void xtestFindAll() {
LoggingManager.setConsoleLogging(Level.SEVERE);
testFindAll(dao, 5000);
}
public void xtestStoreFileInfo() throws SQLException {
int nFiles = 30000;
Map<String, FileInfo> fInfos = new HashMap<String, FileInfo>();
for (int i = 0; i < nFiles; i++) {
FileInfo fInfo = createRandomFileInfo(i, "Random");
Element e = new Element(fInfo.getRelativeName(), fInfo);
cache.put(e);
fInfos.put(fInfo.getRelativeName(), fInfo);
}
cache.flush();
assertEquals(nFiles, cache.getSize());
List<String> keys = cache.getKeys();
for (String key : keys) {
FileInfo fInfo = (FileInfo) cache.get(key).getValue();
String fileName = fInfo.getRelativeName();
assertTrue(fileName.startsWith("subdir1/SUBDIR2/"));
}
}
public void testNothing() {
}
}