1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.codehaus.plexus.metadata.gleaner;
18
19 import java.util.List;
20
21 import junit.framework.TestCase;
22 import org.codehaus.plexus.component.repository.ComponentDescriptor;
23 import org.codehaus.plexus.component.repository.ComponentRequirement;
24 import org.codehaus.plexus.component.repository.ComponentRequirementList;
25 import org.codehaus.plexus.configuration.PlexusConfiguration;
26 import org.codehaus.plexus.metadata.gleaner.ann.AnnotatedComponent;
27 import org.codehaus.plexus.metadata.gleaner.ann.AnnotatedComponentRole;
28
29
30
31
32 public class AnnotationComponentGleanerTest extends TestCase {
33
34 public void testGlean() throws Exception {
35 AnnotationComponentGleaner gleaner = new AnnotationComponentGleaner();
36 Class<AnnotatedComponent> c = AnnotatedComponent.class;
37 ComponentDescriptor<?> descriptor = gleaner.glean(c.getName(), c.getClassLoader());
38
39 assertEquals("foo", descriptor.getComponentType());
40 assertEquals(AnnotatedComponentRole.class.getName(), descriptor.getRole());
41
42 List<ComponentRequirement> requirements = descriptor.getRequirements();
43 assertEquals(requirements.toString(), 2, requirements.size());
44
45 ComponentRequirement requirement = requirements.get(0);
46 assertEquals("dependency", requirement.getFieldName());
47 assertEquals("default", requirement.getRoleHint());
48
49 ComponentRequirement requirement2 = requirements.get(1);
50 assertEquals("dependency2", requirement2.getFieldName());
51 assertTrue(requirement2 instanceof ComponentRequirementList);
52 assertEquals(
53 "release,latest,snapshot", String.join(",", ((ComponentRequirementList) requirement2).getRoleHints()));
54
55 PlexusConfiguration configuration = descriptor.getConfiguration();
56 assertEquals(1, configuration.getChildCount());
57 PlexusConfiguration child = configuration.getChild(0);
58 assertEquals("param", child.getName());
59 assertEquals("value", child.getValue());
60 }
61 }