/** * Registers property injection point. */ public void bind() { petiteContainer.registerPetitePropertyInjectionPoint(beanName, propertyName, reference); } }
@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 testManualRegistration() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(SomeService.class, null, null, null, false, null); pc.registerPetiteBean(PojoBean.class, "pojo", null, null, false, null); assertEquals(2, pc.beansCount()); Set<String> names = pc.beanNames(); assertEquals(2, names.size()); assertTrue(names.contains("pojo")); assertTrue(names.contains("someService")); pc.registerPetiteCtorInjectionPoint("pojo", null, null); pc.registerPetitePropertyInjectionPoint("pojo", "service", "someService"); pc.registerPetiteMethodInjectionPoint("pojo", "injectService", null, new String[]{"someService"}); pc.registerPetiteInitMethods("pojo", POST_INITIALIZE, "init"); PojoBean pojoBean = pc.getBean("pojo"); SomeService ss = pc.getBean("someService"); assertNotNull(pojoBean); assertNotNull(ss); assertSame(ss, pojoBean.fservice); assertSame(ss, pojoBean.service); assertSame(ss, pojoBean.service2); assertEquals(1, pojoBean.count); }
@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 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 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); }
@Test void testManualDefinition() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(SomeService.class, null, null, null, false, null); pc.registerPetiteBean(PojoBean.class, "pojo", null, null, true, null); assertEquals(2, pc.beansCount()); pc.registerPetiteCtorInjectionPoint("pojo", null, null); pc.registerPetitePropertyInjectionPoint("pojo", "service", "someService"); pc.registerPetiteMethodInjectionPoint("pojo", "injectService", null, new String[] {"someService"}); pc.registerPetiteInitMethods("pojo", POST_INITIALIZE, "init"); PojoBean pojoBean = pc.getBean("pojo"); SomeService ss = pc.getBean("someService"); assertNotNull(pojoBean); assertNotNull(ss); assertSame(ss, pojoBean.fservice); assertSame(ss, pojoBean.service); assertSame(ss, pojoBean.service2); assertEquals(1, pojoBean.count); }
@Test void testOne() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(DefaultBizImpl.class, null, null, null, false, null); assertEquals(1, pc.beansCount()); Object bizI = pc.getBean("biz"); assertTrue(bizI instanceof Biz); assertTrue(bizI instanceof DefaultBizImpl); pc = new PetiteContainer(); pc.registerPetiteBean(DefaultBizImpl.class, null, null, null, false, null); pc.registerPetiteBean(DefaultBiz.class, null, null, null, false, null); // override! assertEquals(1, pc.beansCount()); pc.registerPetiteBean(Foo.class, null, null, null, false, null); pc.registerPetitePropertyInjectionPoint("biz", "foo", null); pc.registerPetiteInitMethods("biz", POST_INITIALIZE, "init", "init2"); assertEquals(2, pc.beansCount()); bizI = pc.getBean("biz"); assertTrue(bizI instanceof Biz); assertFalse(bizI instanceof DefaultBizImpl); assertTrue(bizI instanceof DefaultBiz); assertNotNull(((DefaultBiz) bizI).getFoo()); assertEquals(2, ((DefaultBiz) bizI).initCount); }
/** * Registers property injection point. */ public void bind() { petiteContainer.registerPetitePropertyInjectionPoint(beanName, propertyName, reference); } }