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 }