package net.ion.craken.node;
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.crud.Craken;
import net.ion.craken.node.crud.store.OldFileConfigBuilder;
import net.ion.craken.node.crud.tree.impl.PropertyId;
import net.ion.craken.node.crud.tree.impl.PropertyValue;
import net.ion.craken.node.crud.tree.impl.TreeNodeKey;
import net.ion.framework.util.Debug;
import org.infinispan.Cache;
import org.infinispan.atomic.AtomicMap;
public class TestDistEventHandler extends TestCase {
private Craken r;
private ReadSession session;
@Override
protected void setUp() throws Exception {
super.setUp();
this.r = Craken.local() ;
r.createWorkspace("test", OldFileConfigBuilder.directory("./resource/store")) ;
r.start();
this.session = r.login("test");
}
@Override
protected void tearDown() throws Exception {
this.r.shutdown();
super.tearDown();
}
public void testFirst() throws Exception {
Cache<TreeNodeKey, AtomicMap<PropertyId, PropertyValue>> cache = (Cache<TreeNodeKey, AtomicMap<PropertyId, PropertyValue>>) session.workspace().cache() ;
// Debug.line(cache.getListeners());
// assertEquals(1, cache.getListeners().size()) ;
session.workspace().cddm().add(new CDDHandler() {
@Override
public String pathPattern() {
return "/{userId}";
}
@Override
public TransactionJob<Void> modified(Map<String, String> resolveMap, CDDModifiedEvent event) {
Debug.line(resolveMap, event.property("time").asLong(0));
return null;
}
@Override
public TransactionJob<Void> deleted(Map<String, String> resolveMap, CDDRemovedEvent event) {
Debug.line(resolveMap, event);
return null;
}
}) ;
// new InfinityThread().startNJoin();
// session.tran(new TransactionJob<Void>() {
// @Override
// public Void handle(WriteSession wsession) throws Exception {
// wsession.pathBy("/bleujin").property("name", "bleujin") ;
// return null;
// }
// }) ;
}
}