package org.nutz.ioc.json; import static org.junit.Assert.*; import org.junit.Test; import org.nutz.ioc.Ioc; import org.nutz.ioc.impl.NutIoc; import org.nutz.ioc.loader.map.MapLoader; public class RecurReferJsonIocTest { public static class RA { public String nm; public RB rb; } public static class RB { public String nm; public RA ra; } @Test public void test_refer_each_other() { String s = "{"; s += "a:{type:'org.nutz.ioc.json.RecurReferJsonIocTest$RA',"; s += "fields:{nm:'A', rb:{refer:'b'}}"; s += "},"; s += "b:{type:'org.nutz.ioc.json.RecurReferJsonIocTest$RB',"; s += "fields:{nm:'B', ra:{refer:'a'}}"; s += "}"; s += "}"; Ioc ioc = new NutIoc(new MapLoader(s)); RA a = ioc.get(RA.class, "a"); assertEquals("A", a.nm); assertEquals("B", a.rb.nm); RB b = ioc.get(RB.class, "b"); assertEquals("A", b.ra.nm); assertEquals("B", b.nm); } }