1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.plugin.descriptor;
20
21 import java.io.IOException;
22 import java.io.InputStream;
23 import java.io.Reader;
24 import java.net.URI;
25 import java.util.Objects;
26
27 import org.apache.maven.plugin.descriptor.MojoDescriptor;
28 import org.apache.maven.plugin.descriptor.Parameter;
29 import org.apache.maven.plugin.descriptor.PluginDescriptor;
30 import org.apache.maven.tools.plugin.EnhancedParameterWrapper;
31 import org.codehaus.plexus.configuration.PlexusConfigurationException;
32 import org.codehaus.plexus.util.xml.XmlStreamReader;
33 import org.junit.jupiter.api.Assertions;
34 import org.junit.jupiter.api.Test;
35
36 public class EnhancedPluginDescriptorBuilderTest {
37
38 @Test
39 void testTypeJavaDocUrlElement() throws PlexusConfigurationException, IOException {
40 EnhancedPluginDescriptorBuilder builder = new EnhancedPluginDescriptorBuilder(false);
41 try (InputStream input = Objects.requireNonNull(this.getClass().getResourceAsStream("/plugin-enhanced.xml"));
42 Reader reader = new XmlStreamReader(input)) {
43 PluginDescriptor descriptor = builder.build(reader);
44 MojoDescriptor mojoDescriptor = descriptor.getMojo("format-xml");
45 Assertions.assertNotNull(mojoDescriptor);
46 EnhancedParameterWrapper enhancedParameter = assertEnhancedParameter(mojoDescriptor, "excludes");
47 Assertions.assertEquals(URI.create("apidocs/java/util/Set.html"), enhancedParameter.getTypeJavadocUrl());
48 assertParameter(mojoDescriptor, "enableForIncrementalBuild");
49 }
50 }
51
52 EnhancedParameterWrapper assertEnhancedParameter(MojoDescriptor mojoDescriptor, String parameterName) {
53 return (EnhancedParameterWrapper) assertParameter(mojoDescriptor, parameterName, true);
54 }
55
56 Parameter assertParameter(MojoDescriptor mojoDescriptor, String parameterName) {
57 return assertParameter(mojoDescriptor, parameterName, false);
58 }
59
60 Parameter assertParameter(MojoDescriptor mojoDescriptor, String parameterName, boolean isEnhancedParameter) {
61
62 Parameter parameter = mojoDescriptor.getParameters().stream()
63 .filter(p -> p.getName().equals(parameterName))
64 .findFirst()
65 .orElse(null);
66 assertParameter(parameter, isEnhancedParameter);
67 Parameter parameterFromMap = mojoDescriptor.getParameterMap().get(parameterName);
68 assertParameter(parameterFromMap, isEnhancedParameter);
69
70 Assertions.assertEquals(parameter, parameterFromMap);
71 return parameter;
72 }
73
74 void assertParameter(Parameter parameter, boolean isEnhhancedParameter) {
75 Assertions.assertNotNull(parameter);
76 Assertions.assertEquals(isEnhhancedParameter, parameter instanceof EnhancedParameterWrapper);
77 }
78 }