package net.ion.craken.expression;
import net.ion.craken.node.TransactionJob;
import net.ion.craken.node.WriteSession;
import net.ion.craken.node.crud.TestBaseCrud;
public class TestQualifiedName extends TestBaseCrud{
@Override
protected void setUp() throws Exception {
super.setUp();
session.tranSync(new TransactionJob<Void>() {
@Override
public Void handle(WriteSession wsession) {
wsession.pathBy("/bleujin").property("name", "bleujin").property("age", 20).child("address").property("city", "seoul") ;
wsession.pathBy("/bleujin").refTo("dev", "/dept/dev").refTo("friend", "/hero") ;
wsession.pathBy("/dept/dev").property("name", "dev") ;
return null;
}
}) ;
}
public void testDefault() throws Exception {
QualifiedNameExpression qe = QualifiedNameExpression.of("this", "name");
assertEquals("bleujin", qe.value(session.pathBy("/bleujin")));
}
public void testExceptThis() throws Exception {
QualifiedNameExpression qe = QualifiedNameExpression.of("name");
assertEquals("bleujin", qe.value(session.pathBy("/bleujin")));
}
public void testChild() throws Exception {
QualifiedNameExpression qe = QualifiedNameExpression.of("this", "address", "city");
assertEquals("seoul", qe.value(session.pathBy("/bleujin")));
}
public void testRelation() throws Exception {
QualifiedNameExpression qe = QualifiedNameExpression.of("this", "dev", "name");
assertEquals("dev", qe.value(session.pathBy("/bleujin")));
}
public void testRelationButNotExist() throws Exception {
QualifiedNameExpression qe = QualifiedNameExpression.of("this", "friend", "name"); // not exists
assertEquals(true, qe.value(session.pathBy("/bleujin")) == null);
}
public void testHasNotRelation() throws Exception {
QualifiedNameExpression qe = QualifiedNameExpression.of("this", "partner", "name"); // not exists
assertEquals(true, qe.value(session.pathBy("/bleujin")) == null);
}
}