1   package org.marketchangers.pico;
2   
3   import junit.framework.TestCase;
4   
5   import org.apache.lucene.store.Directory;
6   import org.apache.lucene.store.RAMDirectory;
7   import org.picocontainer.MutablePicoContainer;
8   import org.picocontainer.Parameter;
9   import org.picocontainer.defaults.ComponentParameter;
10  import org.picocontainer.defaults.DefaultPicoContainer;
11  
12  /***
13   * @author <a href="mailto:mtodd@wc-group.com">Matthew Todd</a>
14   */
15  public class LearningTest extends TestCase {
16  	public void testCanResolveDependenciesEvenIfThereArentInterfacesInvolved() {
17  		MutablePicoContainer pico = new DefaultPicoContainer();
18  
19  		pico.registerComponentImplementation(
20  			"needsADirectory",
21  			NeedsADirectory.class,
22  			new Parameter[] { new ComponentParameter("directory")});
23  
24  		pico.registerComponentInstance("directory", new RAMDirectory());
25  
26  		pico.getComponentInstance("needsADirectory");
27  		pico.getComponentInstanceOfType(NeedsADirectory.class);
28  	}
29  
30  	public void testWeActuallyDidntHaveToDoAllThatAbove() {
31  		MutablePicoContainer pico = new DefaultPicoContainer();
32  
33  		pico.registerComponentImplementation(NeedsADirectory.class);
34  		pico.registerComponentInstance(new RAMDirectory());
35  
36  		pico.getComponentInstanceOfType(NeedsADirectory.class);
37  	}
38  
39  	public static class NeedsADirectory {
40  		public NeedsADirectory(Directory d) {
41              
42  		}
43  	}
44  }