@Test void testRefParams() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Foo.class, null, null, null, false, null); pc.defineParameter("foo.name", "$${name}"); pc.defineParameter("name", "${name${num}}"); pc.defineParameter("num", "2"); pc.defineParameter("name2", "FOONAME"); pc.defineParameter("FOONAME", "aaa"); Foo foo = pc.getBean("foo"); assertNotNull(foo); assertEquals("$FOONAME", foo.getName()); }
@Test void testRefParamsNoResolve() { PetiteContainer pc = new PetiteContainer(); pc.config().setResolveReferenceParameters(false); pc.registerPetiteBean(Foo.class, null, null, null, false, null); pc.defineParameter("foo.name", "${name}"); pc.defineParameter("name", "${name2}"); pc.defineParameter("name2", "FOONAME"); Foo foo = pc.getBean("foo"); assertNotNull(foo); assertEquals("${name}", foo.getName()); }
@Test void testInjection() { WebApp webapp = new WebApp(); webapp.start(); PetiteContainer madpc = webapp.madvocContainer().getPetiteContainer(); String baseName = StringUtil.uncapitalize(FooBean.class.getSimpleName()); madpc.defineParameter("foo", "1"); madpc.defineParameter(baseName + ".integer", "173"); madpc.defineParameter(baseName + ".string", "jodd"); madpc.defineParameter(baseName, "huh"); ParamsScope paramsScope = new ParamsScope(); BeanUtil.declared.setProperty(paramsScope, "madpc", madpc); FooBean fooBean = new FooBean(); paramsScope.inject(new Targets(fooBean, null)); assertEquals(173, fooBean.getInteger().intValue()); assertEquals("jodd", fooBean.getString()); } }
@Test void testEmptyParam() { final PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Val.class, null, null, null, false, null); pc.config().setImplicitParamInjection(false); pc.defineParameter("someValue", "173"); pc.defineParameter("justValue", "aaa"); Val val = pc.getBean("val"); assertNotNull(val); assertEquals("aaa", val.getJustValue()); }
@Test void testInjectedParams() { final PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Val.class, null, null, null, false, null); pc.config().setImplicitParamInjection(false); pc.defineParameter("someValue", "173"); pc.defineParameter("jodd.is.cool", "yes!"); Val val = pc.getBean("val"); assertNotNull(val); assertEquals("{foo=173,hello='WOO-yes!173'}", val.toString()); }
@Test void testParam_wireExternal() { PetiteContainer pc = new PetiteContainer(); pc.defineParameter("pojoBean2.val1", "123"); final PojoBean2 pojoBean2 = new PojoBean2(); pc.wire(pojoBean2, WiringMode.AUTOWIRE); assertEquals("123", pojoBean2.getVal1()); } }
@Test void testSimpleParams() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Foo.class, null, null, null, false, null); pc.defineParameter("foo.name", "FOONAME"); Foo foo = pc.getBean("foo"); assertNotNull(foo); assertEquals("FOONAME", foo.getName()); }
@Test void testRefParamsEscape() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Foo.class, null, null, null, false, null); pc.defineParameter("foo.name", "\\${name}"); Foo foo = pc.getBean("foo"); assertNotNull(foo); assertEquals("${name}", foo.getName()); }
@Test void testPostConstructor() { PetiteContainer petiteContainer = new PetiteContainer(); // define two beans defineBean(petiteContainer, "bar", Bar.class); defineBean(petiteContainer, "foo", Foo.class); // wiring petiteContainer.registerPetitePropertyInjectionPoint("foo", "bar", "bar"); // init method petiteContainer.registerPetiteInitMethods("foo", POST_CONSTRUCT, "init"); // param petiteContainer.defineParameter("foo.data", "data"); // get bean Foo foo = petiteContainer.getBean("foo"); assertEquals("ctor null null", foo.result); assertEquals("bar", foo.bar.toString()); assertEquals("data", foo.data); }
@Test void testPostDefine() { PetiteContainer petiteContainer = new PetiteContainer(); // define two beans defineBean(petiteContainer, "bar", Bar.class); defineBean(petiteContainer, "foo", Foo.class); // wiring petiteContainer.registerPetitePropertyInjectionPoint("foo", "bar", "bar"); // init method petiteContainer.registerPetiteInitMethods("foo", POST_DEFINE, "init"); // param petiteContainer.defineParameter("foo.data", "data"); // get bean Foo foo = petiteContainer.getBean("foo"); assertEquals("ctor bar null", foo.result); assertEquals("bar", foo.bar.toString()); assertEquals("data", foo.data); }
@Test void testPostInitialize() { PetiteContainer petiteContainer = new PetiteContainer(); // define two beans defineBean(petiteContainer, "bar", Bar.class); defineBean(petiteContainer, "foo", Foo.class); // wiring petiteContainer.registerPetitePropertyInjectionPoint("foo", "bar", "bar"); // init method petiteContainer.registerPetiteInitMethods("foo", POST_INITIALIZE, "init"); // param petiteContainer.defineParameter("foo.data", "data"); // get bean Foo foo = petiteContainer.getBean("foo"); assertEquals("ctor bar data", foo.result); assertEquals("bar", foo.bar.toString()); assertEquals("data", foo.data); }
@Test void testPostAll() { PetiteContainer petiteContainer = new PetiteContainer(); // define two beans defineBean(petiteContainer, "bar", Bar.class); defineBean(petiteContainer, "foo", Foo2.class); // wiring petiteContainer.registerPetitePropertyInjectionPoint("foo", "bar", "bar"); // init method petiteContainer.registerPetiteInitMethods("foo", POST_CONSTRUCT, "init1"); petiteContainer.registerPetiteInitMethods("foo", POST_DEFINE, "init2"); petiteContainer.registerPetiteInitMethods("foo", POST_INITIALIZE, "init3"); // param petiteContainer.defineParameter("foo.data", "data"); // get bean Foo2 foo = petiteContainer.getBean("foo"); assertEquals("1 null null 2 bar null 3 bar data", foo.result); assertEquals("bar", foo.bar.toString()); assertEquals("data", foo.data); }