package org.nutz.ioc.loader.annotation; import static org.junit.Assert.*; import org.junit.Test; import org.nutz.dao.impl.NutDao; import org.nutz.ioc.IocLoader; import org.nutz.ioc.ObjectLoadException; import org.nutz.ioc.ObjectProxy; import org.nutz.ioc.impl.NutIoc; import org.nutz.ioc.loader.annotation.meta.Issue1060; import org.nutz.ioc.meta.IocObject; import org.nutz.json.Json; import org.nutz.log.Logs; public class AnnotationIocLoaderTest { IocLoader iocLoader = new AnnotationIocLoader("org.nutz.ioc.loader.annotation.meta"); @Test public void testGetName() { assertNotNull(iocLoader.getName()); assertTrue(iocLoader.getName().length > 0); } @Test public void testHas() { assertTrue(iocLoader.has("classA")); } @Test public void testLoad() throws Throwable { IocObject iocObject = iocLoader.load(null, "classB"); assertNotNull(iocObject); assertNotNull(iocObject.getFields()); assertTrue(iocObject.getFields().size() == 1); System.out.println(Json.toJson(iocObject)); assertEquals("refer", iocObject.getFields().values().iterator().next().getValue().getType()); } @Test public void test_ioc_inject_by_setter() throws ObjectLoadException { AnnotationIocLoader loader = new AnnotationIocLoader(getClass().getPackage().getName()); Logs.get().error(loader.load(null, "issue1060")); NutIoc ioc = new NutIoc(loader); ioc.getIocContext().save("app", "dao", new ObjectProxy(new NutDao())); // 放个假的 ioc.get(Issue1060.class); ioc.depose(); } }