1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.descriptor;
20
21 import java.io.IOException;
22 import java.io.Reader;
23
24 import junit.framework.TestCase;
25 import org.codehaus.plexus.component.repository.ComponentDependency;
26 import org.codehaus.plexus.component.repository.ComponentRequirement;
27 import org.codehaus.plexus.configuration.PlexusConfiguration;
28 import org.codehaus.plexus.configuration.PlexusConfigurationException;
29 import org.codehaus.plexus.util.ReaderFactory;
30
31
32
33
34
35
36 public class PluginDescriptorBuilderTest extends TestCase {
37
38 private PluginDescriptor build(String resource) throws IOException, PlexusConfigurationException {
39 Reader reader = ReaderFactory.newXmlReader(getClass().getResourceAsStream(resource));
40
41 return new PluginDescriptorBuilder().build(reader);
42 }
43
44 public void testBuildReader() throws Exception {
45 PluginDescriptor pd = build("/plugin.xml");
46
47 assertEquals("org.apache.maven.plugins", pd.getGroupId());
48 assertEquals("maven-jar-plugin", pd.getArtifactId());
49 assertEquals("2.3-SNAPSHOT", pd.getVersion());
50 assertEquals("jar", pd.getGoalPrefix());
51 assertEquals("plugin-description", pd.getDescription());
52 assertEquals(false, pd.isIsolatedRealm());
53 assertEquals(true, pd.isInheritedByDefault());
54 assertEquals(2, pd.getMojos().size());
55 assertEquals(1, pd.getDependencies().size());
56
57 MojoDescriptor md = pd.getMojos().get(0);
58
59 assertEquals("jar", md.getGoal());
60 assertEquals("mojo-description", md.getDescription());
61 assertEquals("runtime", md.getDependencyResolutionRequired());
62 assertEquals("test", md.getDependencyCollectionRequired());
63 assertEquals(false, md.isAggregator());
64 assertEquals(false, md.isDirectInvocationOnly());
65 assertEquals(true, md.isInheritedByDefault());
66 assertEquals(false, md.isOnlineRequired());
67 assertEquals(true, md.isProjectRequired());
68 assertEquals(false, md.isThreadSafe());
69 assertEquals("package", md.getPhase());
70 assertEquals("org.apache.maven.plugin.jar.JarMojo", md.getImplementation());
71 assertEquals("antrun", md.getComponentConfigurator());
72 assertEquals("java", md.getLanguage());
73 assertEquals("per-lookup", md.getInstantiationStrategy());
74 assertEquals("some-goal", md.getExecuteGoal());
75 assertEquals("generate-sources", md.getExecutePhase());
76 assertEquals("cobertura", md.getExecuteLifecycle());
77 assertEquals("2.2", md.getSince());
78 assertEquals("deprecated-mojo", md.getDeprecated());
79 assertEquals(1, md.getRequirements().size());
80 assertEquals(1, md.getParameters().size());
81
82 assertNotNull(md.getMojoConfiguration());
83 assertEquals(1, md.getMojoConfiguration().getChildCount());
84
85 PlexusConfiguration pc = md.getMojoConfiguration().getChild(0);
86
87 assertEquals("${jar.finalName}", pc.getValue());
88 assertEquals("${project.build.finalName}", pc.getAttribute("default-value"));
89 assertEquals("java.lang.String", pc.getAttribute("implementation"));
90
91 Parameter mp = md.getParameters().get(0);
92
93 assertEquals("finalName", mp.getName());
94 assertEquals("jarName", mp.getAlias());
95 assertEquals("java.lang.String", mp.getType());
96 assertEquals("java.lang.String", mp.getImplementation());
97 assertEquals(true, mp.isEditable());
98 assertEquals(false, mp.isRequired());
99 assertEquals("parameter-description", mp.getDescription());
100 assertEquals("deprecated-parameter", mp.getDeprecated());
101 assertEquals("${jar.finalName}", mp.getExpression());
102 assertEquals("${project.build.finalName}", mp.getDefaultValue());
103 assertEquals("3.0.0", mp.getSince());
104
105 ComponentRequirement cr = md.getRequirements().get(0);
106
107 assertEquals("org.codehaus.plexus.archiver.Archiver", cr.getRole());
108 assertEquals("jar", cr.getRoleHint());
109 assertEquals("jarArchiver", cr.getFieldName());
110
111 ComponentDependency cd = pd.getDependencies().get(0);
112
113 assertEquals("org.apache.maven", cd.getGroupId());
114 assertEquals("maven-plugin-api", cd.getArtifactId());
115 assertEquals("2.0.6", cd.getVersion());
116 assertEquals("jar", cd.getType());
117
118 md = pd.getMojos().get(1);
119
120 assertEquals("war", md.getGoal());
121 assertEquals(null, md.getDependencyResolutionRequired());
122 assertEquals(null, md.getDependencyCollectionRequired());
123 assertEquals(true, md.isThreadSafe());
124 }
125 }