package org.nutz.ioc.val; import static org.junit.Assert.*; import org.junit.Test; import org.nutz.ioc.Ioc2; import org.nutz.ioc.IocContext; import org.nutz.ioc.annotation.InjectName; import org.nutz.ioc.impl.ComboContext; import org.nutz.ioc.impl.NutIoc; import org.nutz.ioc.impl.ScopeContext; import org.nutz.ioc.loader.map.MapLoader; import org.nutz.json.Json; public class DefaultValueTypes { public String name; @InjectName("obj") public static class TestReferContext { IocContext ic; } @Test public void test_refer_context() { IocContext context = new ScopeContext("abc"); String json = "{obj:{singleton:false,fields:{ic:{refer:'$conText'}}}}"; Ioc2 ioc = new NutIoc(new MapLoader(json), context, "abc"); TestReferContext trc = ioc.get(TestReferContext.class); assertTrue(context == trc.ic); IocContext context2 = new ScopeContext("rrr"); trc = ioc.get(TestReferContext.class, "obj", context2); assertTrue(trc.ic instanceof ComboContext); } @Test public void test_el() { IocContext context = new ScopeContext("abc"); String json = "{obj:{type:'org.nutz.ioc.val.DefaultValueTypes', fields:{name:{el:'sys[\"os.arch\"]'}}}}"; System.out.println(Json.toJson(Json.fromJson(json))); Ioc2 ioc = new NutIoc(new MapLoader(json), context, "abc"); DefaultValueTypes self = ioc.get(DefaultValueTypes.class, "obj"); assertEquals(System.getProperties().get("os.arch"), self.name); } }