Re: [picocontainer-dev] new ComponentMonitor method ...

Mauro Talevi <[email protected]>
Newsgroups gmane.comp.java.picocontainer.devel
Message-ID <[email protected]>
Seems a valid usecase to me.

Paul Hammant wrote:
> Here's a testcase that illustrates it in use -
> 
>     @Test public void 
> canInterceptImplementationViaNewInjectionFactoryMethodOnMonitor() {
>         DefaultPicoContainer dpc = new DefaultPicoContainer(new 
> MyNullComponentMonitor());
>         dpc.addComponent(List.class, ArrayList.class);
>         assertNotNull(dpc.getComponent(List.class));
>         assertEquals("doppleganger", dpc.getComponent(List.class).get(0));
>     }
> 
>     private static class MyNullComponentMonitor extends 
> NullComponentMonitor {
>         public AbstractInjector newInjectionFactory(AbstractInjector 
> abstractInjector) {
>             return new AbstractInjector(List.class, ArrayList.class, 
> Parameter.DEFAULT, MyNullComponentMonitor.this, null, false) {
>                 public void verify(PicoContainer container) throws 
> PicoCompositionException {
>                 }
>                 public Object getComponentInstance(PicoContainer 
> container) throws PicoCompositionException {
>                     ArrayList list = new ArrayList();
>                     list.add("doppleganger");
>                     return list;
>                 }
>                 public String getDescriptor() {
>                     return "n/a";
>                 }
>             };
>         }
>     }
> 
> On Mar 22, 2008, at 5:41 PM, Paul Hammant wrote:
> 
>>    AbstractInjector newInjectionFactory(AbstractInjector 
>> abstractInjector);
>>
>> Implementations return what is passed in by default (see patch)
>>
>> Useful for unit (integration) testing.  You might have a large tree of 
>> containers and components, but want to swap out something crucial for 
>> a Stub or a Mock so that you integration testing is not going to bring 
>> up the whole app (just a subset of the components).  This on 
>> ComponentMonitor will allow that, as long at the CM instance is passed 
>> into the root container.
>>
>> Thoughts?
>>
>> - Paul
>>
>> <new-monitor-method.patch>
>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>    http://xircles.codehaus.org/manage_email
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
> 
>    http://xircles.codehaus.org/manage_email
> 
> 
> 


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.