package net.ion.craken.node.crud;
import java.util.Date;
import java.util.Map;
import junit.framework.TestCase;
import net.ion.craken.listener.CDDHandler;
import net.ion.craken.listener.CDDModifiedEvent;
import net.ion.craken.listener.CDDRemovedEvent;
import net.ion.craken.node.ReadSession;
import net.ion.craken.node.TransactionJob;
import net.ion.craken.node.WriteSession;
import net.ion.craken.node.crud.store.WorkspaceConfigBuilder;
public class TestOtherWrite extends TestCase {
public void testEvent() throws Exception {
Craken craken = Craken.local();
craken.createWorkspace("working", WorkspaceConfigBuilder.sifsDir("./resource/temp/sifs").maxEntry(100000));
craken.createWorkspace("stat", WorkspaceConfigBuilder.gridDir("./resource/temp/grid"));
ReadSession session = craken.login("working");
final ReadSession stat = craken.login("stat");
CDDHandler myhandler = new CDDHandler() {
@Override
public String pathPattern() {
return "/logs/{logid}";
}
@Override
public TransactionJob<Void> modified(Map<String, String> resolveMap, CDDModifiedEvent event) {
stat.tran(new TransactionJob<Void>() {
@Override
public Void handle(WriteSession msession) throws Exception {
Date date = new Date();
msession.pathBy("/days", date.getMonth()+1).increase("count");
msession.pathBy("/days", date.getMonth()+1, date.getDate()).increase("count");
return null;
}
});
return null;
}
@Override
public TransactionJob<Void> deleted(Map<String, String> resolveMap, CDDRemovedEvent event) {
return null;
}
};
session.workspace().cddm().add(myhandler);
for (int i = 0; i < 1; i++) {
final int index = i;
session.tran(new TransactionJob<Void>() {
@Override
public Void handle(WriteSession wsession) throws Exception {
wsession.pathBy("/logs", index).property("name", "bleujin").property("time", System.currentTimeMillis());
return null;
}
});
}
// stat.root().walkChildren().debugPrint();
stat.root().childQuery("", true).find().debugPrint();
}
}