package net.ion.craken.node.convert.from; import java.util.Date; import net.ion.craken.node.TransactionJob; import net.ion.craken.node.WriteSession; import net.ion.craken.node.convert.sample.Dept; import net.ion.craken.node.convert.sample.Employee; import net.ion.craken.node.crud.TestBaseCrud; import net.ion.framework.parse.gson.JsonObject; import net.ion.framework.parse.gson.JsonParser; import net.ion.framework.util.Debug; public class TestFromJson extends TestBaseCrud { public void testFlat() throws Exception { Dept dept = new Dept().deptno(20).name("dev"); final JsonObject json = JsonParser.fromObject(dept).getAsJsonObject(); session.tranSync(new TransactionJob<Void>() { @Override public Void handle(WriteSession wsession) { wsession.pathBy("/dept/dev").fromJson(json) ; return null ; } }) ; assertEquals("dev", session.pathBy("/dept/dev").property("name").value()) ; assertEquals(20, session.pathBy("/dept/dev").property("deptno").value()) ; } public void testChild() throws Exception { Dept dept = new Dept().deptno(20).name("dev").manager(new Employee().name("bleujin").age(20).created(new Date())) ; final JsonObject json = JsonParser.fromObject(dept).getAsJsonObject(); session.tranSync(new TransactionJob<Void>() { @Override public Void handle(WriteSession wsession) { wsession.pathBy("/dept/dev").fromJson(json) ; return null ; } }) ; assertEquals("dev", session.pathBy("/dept/dev").property("name").value()) ; assertEquals(20, session.pathBy("/dept/dev").property("deptno").value()) ; assertEquals("bleujin", session.pathBy("/dept/dev").child("manager").property("name").value()) ; } public void testBasic() throws Exception { session.tranSync(new TransactionJob<Void>() { @Override public Void handle(WriteSession wsession) { wsession.pathBy("/users/bleujin").property("name", "jin") ; return null ; } }) ; assertEquals("jin", session.pathBy("/users/bleujin").property("name").stringValue()) ; } public void testAddRelation() throws Exception { Dept dept = new Dept().deptno(20).name("dev").manager(new Employee().name("bleujin").age(20).created(new Date())) ; final JsonObject json = JsonParser.fromObject(dept).getAsJsonObject(); json.put("@register", "/users/bleujin") ; // add relation Debug.line(json) ; session.tranSync(new TransactionJob<Void>() { @Override public Void handle(WriteSession wsession) { wsession.pathBy("/users/bleujin").property("name", "jin") ; wsession.pathBy("/dept/dev").fromJson(json) ; return null ; } }) ; assertEquals("dev", session.pathBy("/dept/dev").property("name").value()) ; assertEquals(20, session.pathBy("/dept/dev").property("deptno").value()) ; assertEquals("bleujin", session.pathBy("/dept/dev").child("manager").property("name").value()) ; assertEquals("jin", session.pathBy("/dept/dev").ref("register").property("name").value()) ; } }