/** * Returns Petite bean instance. Bean name will be resolved from provided type. */ @SuppressWarnings({"unchecked"}) public <T> T getBean(final Class<T> type) { String name = resolveBeanName(type); return (T) getBean(name); }
@Test void testGet() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(PojoBean2.class, null, null, null, false, null); PojoBean2 pojo2 = pc.getBean("pojoBean2"); pojo2.setVal1("value"); pojo2.setVal2(Integer.valueOf(173)); pc.setBeanProperty("pojoBean2.val1", "value"); pc.setBeanProperty("pojoBean2.val2", "173"); assertEquals("value", pc.getBeanProperty("pojoBean2.val1")); assertEquals(Integer.valueOf(173), pc.getBeanProperty("pojoBean2.val2")); }
/** * Returns registered component or {@code null} if component is not registered. */ @SuppressWarnings({"unchecked"}) public <T> T lookupComponent(final Class<T> component) { String name = resolveBaseComponentName(component); return (T) madpc.getBean(name); }
@Test void testProperties() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Foo.class, null, null, null, false, null); Properties p = new Properties(); p.setProperty("foo.name", "${name}"); p.setProperty("name", "${name2}"); p.setProperty("name2", "FOONAME"); pc.defineParameters(p); Foo foo = pc.getBean("foo"); assertNotNull(foo); assertEquals("FOONAME", foo.getName()); }
@Test void testCollection() { final PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Superman.class, null, null, null, false, null); pc.registerPetiteBean(Metropolis.class, null, null, null, false, null); Metropolis metropolis = pc.getBean(Metropolis.class); assertNotNull(metropolis.superHeros); assertFalse(metropolis.superHeros.isEmpty()); assertEquals(1, metropolis.superHeros.size()); String str = metropolis.whoIsThere(); assertTrue(str.contains("Superman")); }
@Test void test244() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(BeanOne.class, null, null, null, false, null); pc.registerPetiteBean(BeanTwo.class, null, null, null, false, null); BeanOne petiteBean = pc.getBean(BeanOne.class); assertTrue(petiteBean.ctor != petiteBean.setter); }
@Test void testProviderLookup() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Solar3.class, null, null, null, false, null); Planet earth = pc.getBean("planet"); assertEquals("Earth", earth.toString()); }
@Test void testSelf() { PetiteContainer pc = new PetiteContainer(); pc.addSelf(); assertEquals(1, pc.beansCount()); PetiteContainer pc2 = pc.getBean(PetiteContainer.PETITE_CONTAINER_REF_NAME); assertEquals(pc2, pc); }
@Test void testConsumer() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(SomeService.class, null, null, null, false, null); pc.registerPetiteBean(PojoBean.class, "pojo", null, null, false, pb -> pb.count = 7); pc.registerPetiteCtorInjectionPoint("pojo", null, null); PojoBean pb = pc.getBean("pojo"); assertEquals(7, pb.count); } }
@Test void testInstanceStaticMethodProvider() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Solar3.class, null, null, null, false, null); // still needs to be a bean pc.registerPetiteBean(Sun.class, null, null, null, false, null); Sun sun = pc.getBean(Sun.class); assertEquals("Sun{Earth}", sun.toString()); }
@Test void testSet() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(PojoBean2.class, null, null, null, false, null); pc.setBeanProperty("pojoBean2.val1", "value"); pc.setBeanProperty("pojoBean2.val2", "173"); PojoBean2 pojo2 = pc.getBean("pojoBean2"); assertEquals("value", pojo2.getVal1()); assertEquals(173, pojo2.getVal2().intValue()); }
@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 testInstanceMethodProviderManualRegistration() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Solar2.class, null, null, null, false, null); pc.registerPetiteBean(Sun2.class, null, null, null, false, null); pc.registerPetiteProvider("planet", "solar2", "planetProvider", ClassUtil.EMPTY_CLASS_ARRAY); pc.registerPetitePropertyInjectionPoint("sun2", "planet", null); Sun2 sun = pc.getBean(Sun2.class); assertEquals("Sun{Earth}", sun.toString()); }
@Test void testWireMode_none() { PetiteContainer pc = new PetiteContainer(); final WiringMode wiringMode = WiringMode.NONE; pc.registerPetiteBean(Green.class, null, null, wiringMode, false, null); pc.registerPetiteBean(Blue.class, null, null, wiringMode, false, null); pc.registerPetiteBean(Yellow.class, null, null, wiringMode, false, null); Green green = pc.getBean("green"); assertNotNull(green); assertNull(green.blue); assertNull(green.yellow); }
@Test void testSingleImplementation() { final PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(BizUser.class, null, null, null, false, null); pc.registerPetiteBean(OneBiz.class, null, null, null, false, null); assertEquals(2, pc.beansCount()); final BizUser bizUser = pc.getBean(BizUser.class); assertNotNull(bizUser); assertNotNull(bizUser.biz); assertTrue(bizUser.biz instanceof OneBiz); } }
@Test void testPrivateInjection() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Loo.class); pc.registerPetiteBean(YujinpingBaseService.class); pc.registerPetiteBean(YujinpingUserService.class); YujinpingUserService service = pc.getBean(YujinpingUserService.class); assertTrue(service.check2()); assertTrue(service.check()); } }
@Test void testSingletonDestroyMethods() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Foo.class, null, null, null, false, null); pc.registerPetiteBean(Zoo.class, null, null, null, false, null); pc.registerPetiteBean(Boo.class, null, null, null, false, null); Boo boo = (Boo) pc.getBean("boo"); assertEquals(0, boo.getCount2()); pc.shutdown(); assertEquals(2, boo.getCount2()); }
@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()); }