package net.ion.craken.node.crud.impl;
import junit.framework.TestCase;
import net.ion.craken.node.ReadSession;
import net.ion.craken.node.TransactionJob;
import net.ion.craken.node.WriteSession;
import net.ion.craken.node.crud.Craken;
import net.ion.craken.node.crud.store.FileStoreWorkspaceConfigBuilder;
import net.ion.craken.node.crud.store.FileSystemWorkspaceConfigBuilder;
import net.ion.craken.node.crud.util.TransactionJobs;
import net.ion.framework.util.Debug;
import net.ion.framework.util.ObjectId;
public class TestFSWorkspace extends TestCase{
private ReadSession rsession;
private Craken craken;
@Override
protected void setUp() throws Exception {
super.setUp();
this.craken = Craken.inmemoryCreateWithTest() ;
craken.createWorkspace("fs", FileStoreWorkspaceConfigBuilder.test().maxEntry(100)) ;
this.rsession = craken.login("fs") ;
}
@Override
protected void tearDown() throws Exception {
craken.shutdown() ;
super.tearDown();
}
public void testChildren() throws Exception {
rsession.tran(TransactionJobs.REMOVE_ALL) ;
final TransactionJob<Void> job = new TransactionJob<Void>() {
@Override
public Void handle(WriteSession wsession) throws Exception {
for (int i = 0; i < 10; i++) {
wsession.pathBy("/emps/" + new ObjectId().toString()).property("name", "dummy") ;
}
return null;
}
};
rsession.tran(job) ;
rsession.root().children().debugPrint();
for(Object key : rsession.workspace().cache().keySet()){
Debug.line(key);
}
}
public void testMaxEntry() throws Exception {
rsession.tran(TransactionJobs.REMOVE_ALL) ;
final TransactionJob<Void> job = new TransactionJob<Void>() {
@Override
public Void handle(WriteSession wsession) throws Exception {
for (int i = 0; i < 10; i++) {
wsession.pathBy("/emps/" + new ObjectId().toString()).property("name", "dummy") ;
}
return null;
}
};
for (int i = 0; i < 10; i++) {
rsession.tran(job) ;
}
rsession.root().walkChildren().debugPrint();
// Thread.sleep(30000);
}
}