package net.ion.craken.node.convert.to;
import java.util.Date;
import java.util.Set;
import net.ion.craken.node.ReadNode;
import net.ion.craken.node.TransactionJob;
import net.ion.craken.node.WriteSession;
import net.ion.craken.node.convert.sample.FlatPerson;
import net.ion.craken.node.crud.TestBaseCrud;
import org.apache.commons.lang.builder.ToStringBuilder;
public class TestToFlatBean extends TestBaseCrud {
public void testToFlatBean() throws Exception {
session.tran(new TransactionJob<Void>() {
@Override
public Void handle(WriteSession wsession) {
wsession.root().child("/bleujin").property("name", "bleujin").property("age", 10).property("created", new Date()) ;
return null ;
}
}).get() ;
ReadNode bleujin = session.pathBy("/bleujin");
assertEquals("bleujin", bleujin.toBean(FlatPerson.class).name()) ;
assertEquals(new Date().getDate(), bleujin.toBean(FlatPerson.class).created().getDate()) ;
}
public void testAppend() throws Exception {
session.tran(new TransactionJob<Void>() {
@Override
public Void handle(WriteSession wsession) throws Exception {
wsession.pathBy("/bleujin").append("name", "bleujin", "name", "jin") ;
return null;
}
}).get() ;
Person person = session.pathBy("/bleujin").toBean(Person.class);
assertEquals(true, person.contains("bleujin")) ;
assertEquals(true, person.contains("name")) ;
assertEquals(true, person.contains("jin")) ;
}
}
class Person {
private Set<String> name ;
public String toString(){
return ToStringBuilder.reflectionToString(this) ;
}
public boolean contains(String find){
return name.contains(find) ;
}
}