package net.ion.craken.problem;
import java.util.Map;
import junit.framework.TestCase;
import net.ion.craken.listener.CDDModifiedEvent;
import net.ion.craken.listener.CDDModifyHandler;
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.framework.util.Debug;
public class TestNewCDDHandler extends TestCase {
private Craken r;
private ReadSession session;
@Override
protected void setUp() throws Exception {
super.setUp();
this.r = Craken.inmemoryCreateWithTest();
r.start();
this.session = r.login("test");
}
@Override
protected void tearDown() throws Exception {
this.r.shutdown();
super.tearDown();
}
public void testFirst() throws Exception {
session.workspace().cddm().add(new CDDModifyHandler("/emp/{user}") {
@Override
public TransactionJob<Void> modified(Map<String, String> resolveMap, final CDDModifiedEvent event) {
final String user = resolveMap.get("user");
return new TransactionJob<Void>() {
@Override
public Void handle(WriteSession wsession) throws Exception {
Debug.line(user + " edited", event.property("name").asString());
return null;
}
};
}
});
session.tranSync(new TransactionJob<Void>() {
@Override
public Void handle(WriteSession wsession) throws Exception {
wsession.pathBy("/emp/bleujin").property("name", "bleujin");
wsession.pathBy("/emp/ryun").property("name", "ryunhee");
wsession.pathBy("/emp/hero").property("name", "hero");
return null;
}
});
session.workspace().cddm().await();
}
}