1 package org.codehaus.plexus.component;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import java.util.Map;
20
21 import junit.framework.TestCase;
22 import org.codehaus.plexus.DefaultPlexusContainer;
23 import org.codehaus.plexus.PlexusContainer;
24 import org.codehaus.plexus.component.repository.ComponentDescriptor;
25 import org.codehaus.plexus.component.repository.ComponentRequirement;
26 import org.codehaus.plexus.configuration.PlexusConfiguration;
27 import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
28 import org.codehaus.plexus.logging.LoggerManager;
29
30 public class MapOrientedComponentProcessingTest extends TestCase {
31
32 public void testShouldFindAndInitializeMapOrientedComponent() throws Exception {
33 PlexusContainer embedder = new DefaultPlexusContainer();
34
35 ComponentDescriptor<TestMapOrientedComponent> descriptor =
36 new ComponentDescriptor(TestMapOrientedComponent.class, embedder.getContainerRealm());
37
38 descriptor.setRole(TestMapOrientedComponent.ROLE);
39
40 descriptor.setImplementation(TestMapOrientedComponent.ROLE);
41
42 descriptor.setComponentComposer("map-oriented");
43
44 descriptor.setComponentConfigurator("map-oriented");
45
46 ComponentRequirement requirement = new ComponentRequirement();
47
48 requirement.setFieldName("testRequirement");
49
50 requirement.setRole(LoggerManager.ROLE);
51
52 descriptor.addRequirement(requirement);
53
54 PlexusConfiguration param = new XmlPlexusConfiguration("testParameter");
55
56 param.setValue("testValue");
57
58 PlexusConfiguration configuration = new XmlPlexusConfiguration("configuration");
59
60 configuration.addChild(param);
61
62 descriptor.setConfiguration(configuration);
63
64 embedder.addComponentDescriptor(descriptor);
65
66 TestMapOrientedComponent component = embedder.lookup(TestMapOrientedComponent.class);
67
68 Map context = component.getContext();
69
70 assertTrue(
71 "requirement (LogManager) missing from containerContext.",
72 (context.get("testRequirement") instanceof LoggerManager));
73
74 assertEquals("parameter missing from containerContext.", "testValue", context.get("testParameter"));
75 }
76 }