package com.alibaba.doris.dataserver.store.bdb;
import java.io.File;
import java.util.Date;
import junit.framework.TestCase;
import com.alibaba.doris.common.data.Key;
import com.alibaba.doris.common.data.Value;
import com.alibaba.doris.common.data.impl.KeyImpl;
import com.alibaba.doris.common.data.impl.ValueImpl;
import com.alibaba.doris.common.data.util.ByteUtils;
import com.alibaba.doris.dataserver.store.Storage;
import com.alibaba.doris.dataserver.store.StorageConfig;
import com.alibaba.doris.dataserver.store.StorageDriver;
/**
* @author ajun Email:jack.yuj@alibaba-inc.com
*/
public abstract class BaseBdbStorageTest extends TestCase {
@Override
protected void setUp() throws Exception {
try {
driver = (StorageDriver) BDBStorageDriver.class.newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
StorageConfig config = getStorageConfig();
driver.init(config);
storage = driver.createStorage();
storage.open();
}
@Override
protected void tearDown() throws Exception {
storage.close();
}
public StorageConfig getStorageConfig() {
StorageConfig config = new StorageConfig();
config.setPropertiesFile("bdb_storage_test_mock.properties");
config.setSize(5000);
config.setStorageDriverClass("com.alibaba.doris.dataserver.store.bdb.BDBStorageDriver");
config.setStorageTypeClass("");
return config;
}
protected StorageDriver getStorageDriver() {
return driver;
}
protected Storage getStorage() {
return storage;
}
protected Key createKey(String key) {
return new KeyImpl(100, key, 0);
}
protected Value createValue(String value) {
return new ValueImpl(ByteUtils.stringToByte(value), (new Date()).getTime());
}
protected void clear() {
String path = BaseBdbStorageTest.class.getClassLoader().getResource("").getPath();
File f = new File(path);
for (File file : f.listFiles()) {
if (file.getName().contains(".jdb")) {
file.delete();
} else if (file.getName().contains("je.")) {
file.delete();
}
}
}
private StorageDriver driver;
private Storage storage;
}