package net.ion.craken.problem;
import junit.framework.TestCase;
import net.ion.craken.loaders.EntryKey;
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.OldFileConfigBuilder;
import net.ion.framework.util.Debug;
import net.ion.nsearcher.common.ReadDocument;
import net.ion.nsearcher.search.Searcher;
public class TestRefsProblem extends TestCase {
private Craken r;
private ReadSession session;
@Override
protected void setUp() throws Exception {
super.setUp();
// FileUtil.deleteDirectory(new File("./resource/temp/test"));
this.r = Craken.create() ;
r.createWorkspace("test", OldFileConfigBuilder.directory("./resource/temp/test")) ;
this.session = r.login("test") ;
}
@Override
protected void tearDown() throws Exception {
r.shutdown() ;
super.tearDown();
}
public void testRefs() throws Exception {
session.tran(new TransactionJob<Void>() {
@Override
public Void handle(WriteSession wsession) {
wsession.pathBy("/dept/1") ;
wsession.pathBy("/dept/2") ;
wsession.pathBy("/dept/3") ;
wsession.pathBy("/emp/bleujin").refTos("dept", "/dept/1") ;
wsession.pathBy("/emp/bleujin").refTos("dept", "/dept/2") ;
wsession.pathBy("/emp/bleujin").refTos("dept", "/dept/3") ;
wsession.pathBy("/emp/bleujin").append("age", 20, 30, 40) ;
return null;
}
}).get() ;
session.pathBy("/emp/bleujin").walkRefChildren("dept").debugPrint();
}
public void testView() throws Exception {
Searcher searcher = session.workspace().central().newSearcher() ;
ReadDocument doc = searcher.createRequestByKey("/emp/bleujin").find().first() ;
Debug.line(doc.asString(EntryKey.VALUE));
}
public void testRead() throws Exception {
session.pathBy("/emp/bleujin").walkRefChildren("dept").debugPrint();
Debug.line(session.pathBy("/emp/bleujin").property("age").asSet()) ;
}
}