001 package org.apache.maven.plugin;
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements. See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership. The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License. You may obtain a copy of the License at
011 *
012 * http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied. See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022 import java.util.Collections;
023
024 import org.apache.maven.plugin.descriptor.MojoDescriptor;
025 import org.apache.maven.plugin.descriptor.Parameter;
026 import org.apache.maven.plugin.descriptor.PluginDescriptor;
027
028 import junit.framework.TestCase;
029
030 /**
031 * MNG-3131
032 *
033 * @author Robert Scholte
034 *
035 */
036 public class PluginParameterExceptionTest
037 extends TestCase
038 {
039
040 public void testMissingRequiredStringArrayTypeParameter()
041 {
042 MojoDescriptor mojoDescriptor = new MojoDescriptor();
043 mojoDescriptor.setGoal( "goal" );
044 PluginDescriptor pluginDescriptor = new PluginDescriptor();
045 pluginDescriptor.setGoalPrefix( "goalPrefix" );
046 pluginDescriptor.setArtifactId( "artifactId" );
047 mojoDescriptor.setPluginDescriptor( pluginDescriptor );
048
049 Parameter parameter = new Parameter();
050 parameter.setType( "java.lang.String[]" );
051 parameter.setName( "toAddresses" );
052
053 parameter.setRequired( true );
054
055 PluginParameterException exception =
056 new PluginParameterException( mojoDescriptor, Collections.singletonList( parameter ) );
057
058 assertEquals( "One or more required plugin parameters are invalid/missing for 'goalPrefix:goal'\n" +
059 "\n" +
060 "[0] Inside the definition for plugin 'artifactId', specify the following:\n" +
061 "\n" +
062 "<configuration>\n" +
063 " ...\n" +
064 " <toAddresses>\n" +
065 " <item>VALUE</item>\n" +
066 " </toAddresses>\n" +
067 "</configuration>.\n", exception.buildDiagnosticMessage() );
068 }
069
070 public void testMissingRequiredCollectionTypeParameter()
071 {
072 MojoDescriptor mojoDescriptor = new MojoDescriptor();
073 mojoDescriptor.setGoal( "goal" );
074 PluginDescriptor pluginDescriptor = new PluginDescriptor();
075 pluginDescriptor.setGoalPrefix( "goalPrefix" );
076 pluginDescriptor.setArtifactId( "artifactId" );
077 mojoDescriptor.setPluginDescriptor( pluginDescriptor );
078
079 Parameter parameter = new Parameter();
080 parameter.setType( "java.util.List" );
081 parameter.setName( "toAddresses" );
082
083 parameter.setRequired( true );
084
085 PluginParameterException exception =
086 new PluginParameterException( mojoDescriptor, Collections.singletonList( parameter ) );
087
088 assertEquals( "One or more required plugin parameters are invalid/missing for 'goalPrefix:goal'\n" +
089 "\n" +
090 "[0] Inside the definition for plugin 'artifactId', specify the following:\n" +
091 "\n" +
092 "<configuration>\n" +
093 " ...\n" +
094 " <toAddresses>\n" +
095 " <item>VALUE</item>\n" +
096 " </toAddresses>\n" +
097 "</configuration>.\n", exception.buildDiagnosticMessage() );
098 }
099
100 public void testMissingRequiredMapTypeParameter()
101 {
102 MojoDescriptor mojoDescriptor = new MojoDescriptor();
103 mojoDescriptor.setGoal( "goal" );
104 PluginDescriptor pluginDescriptor = new PluginDescriptor();
105 pluginDescriptor.setGoalPrefix( "goalPrefix" );
106 pluginDescriptor.setArtifactId( "artifactId" );
107 mojoDescriptor.setPluginDescriptor( pluginDescriptor );
108
109 Parameter parameter = new Parameter();
110 parameter.setType( "java.util.Map" );
111 parameter.setName( "toAddresses" );
112
113 parameter.setRequired( true );
114
115 PluginParameterException exception =
116 new PluginParameterException( mojoDescriptor, Collections.singletonList( parameter ) );
117
118 assertEquals( "One or more required plugin parameters are invalid/missing for 'goalPrefix:goal'\n" +
119 "\n" +
120 "[0] Inside the definition for plugin 'artifactId', specify the following:\n" +
121 "\n" +
122 "<configuration>\n" +
123 " ...\n" +
124 " <toAddresses>\n" +
125 " <KEY>VALUE</KEY>\n" +
126 " </toAddresses>\n" +
127 "</configuration>.\n", exception.buildDiagnosticMessage() );
128 }
129
130 public void testMissingRequiredPropertiesTypeParameter()
131 {
132 MojoDescriptor mojoDescriptor = new MojoDescriptor();
133 mojoDescriptor.setGoal( "goal" );
134 PluginDescriptor pluginDescriptor = new PluginDescriptor();
135 pluginDescriptor.setGoalPrefix( "goalPrefix" );
136 pluginDescriptor.setArtifactId( "artifactId" );
137 mojoDescriptor.setPluginDescriptor( pluginDescriptor );
138
139 Parameter parameter = new Parameter();
140 parameter.setType( "java.util.Properties" );
141 parameter.setName( "toAddresses" );
142
143 parameter.setRequired( true );
144
145 PluginParameterException exception =
146 new PluginParameterException( mojoDescriptor, Collections.singletonList( parameter ) );
147
148 assertEquals( "One or more required plugin parameters are invalid/missing for 'goalPrefix:goal'\n" +
149 "\n" +
150 "[0] Inside the definition for plugin 'artifactId', specify the following:\n" +
151 "\n" +
152 "<configuration>\n" +
153 " ...\n" +
154 " <toAddresses>\n" +
155 " <property>\n" +
156 " <name>KEY</name>\n" +
157 " <value>VALUE</value>\n" +
158 " </property>\n" +
159 " </toAddresses>\n" +
160 "</configuration>.\n", exception.buildDiagnosticMessage() );
161 }
162
163
164 }