KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > maven > project > validation > DefaultModelValidatorTest


1 package org.apache.maven.project.validation;
2
3 /*
4  * Copyright 2001-2005 The Apache Software Foundation.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */

18
19 import org.apache.maven.model.Model;
20 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
21 import org.apache.maven.project.AbstractMavenProjectTestCase;
22
23 import java.io.FileReader JavaDoc;
24 import java.io.Reader JavaDoc;
25 import java.util.List JavaDoc;
26
27 /**
28  * @author <a HREF="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
29  * @version $Id: DefaultModelValidatorTest.java 330003 2005-11-01 07:37:57Z brett $
30  */

31 public class DefaultModelValidatorTest
32     extends AbstractMavenProjectTestCase
33 {
34     private Model model;
35
36     private ModelValidator validator;
37
38     public void testMissingModelVersion()
39         throws Exception JavaDoc
40     {
41         ModelValidationResult result = validate( "missing-modelVersion-pom.xml" );
42
43         assertEquals( 1, result.getMessageCount() );
44
45         assertEquals( "'modelVersion' is missing.", result.getMessage( 0 ) );
46     }
47
48     public void testMissingArtifactId()
49         throws Exception JavaDoc
50     {
51         ModelValidationResult result = validate( "missing-artifactId-pom.xml" );
52
53         assertEquals( 1, result.getMessageCount() );
54
55         assertEquals( "'artifactId' is missing.", result.getMessage( 0 ) );
56     }
57
58     public void testMissingGroupId()
59         throws Exception JavaDoc
60     {
61         ModelValidationResult result = validate( "missing-groupId-pom.xml" );
62
63         assertEquals( 1, result.getMessageCount() );
64
65         assertEquals( "'groupId' is missing.", result.getMessage( 0 ) );
66     }
67
68     public void testInvalidIds()
69         throws Exception JavaDoc
70     {
71         ModelValidationResult result = validate( "invalid-ids-pom.xml" );
72
73         assertEquals( 2, result.getMessageCount() );
74
75         assertEquals( "'groupId' with value 'o/a/m' does not match a valid id pattern.", result.getMessage( 0 ) );
76
77         assertEquals( "'artifactId' with value 'm$-do$' does not match a valid id pattern.", result.getMessage( 1 ) );
78     }
79
80     public void testMissingType()
81         throws Exception JavaDoc
82     {
83         ModelValidationResult result = validate( "missing-type-pom.xml" );
84
85         assertEquals( 1, result.getMessageCount() );
86
87         assertEquals( "'packaging' is missing.", result.getMessage( 0 ) );
88     }
89
90     public void testMissingVersion()
91         throws Exception JavaDoc
92     {
93         ModelValidationResult result = validate( "missing-version-pom.xml" );
94
95         assertEquals( 1, result.getMessageCount() );
96
97         assertEquals( "'version' is missing.", result.getMessage( 0 ) );
98     }
99     
100     public void testInvalidAggregatorPackaging()
101         throws Exception JavaDoc
102     {
103         ModelValidationResult result = validate( "invalid-aggregator-packaging-pom.xml" );
104         
105         assertEquals( 1, result.getMessageCount() );
106         
107         assertTrue( result.getMessage( 0 ).indexOf( "Aggregator projects require 'pom' as packaging." ) > -1 );
108     }
109
110     public void testMissingDependencyArtifactId()
111         throws Exception JavaDoc
112     {
113         ModelValidationResult result = validate( "missing-dependency-artifactId-pom.xml" );
114
115         assertEquals( 1, result.getMessageCount() );
116
117         assertTrue( result.getMessage( 0 ).indexOf( "'dependencies.dependency.artifactId' is missing." ) > -1 );
118     }
119
120     public void testMissingDependencyGroupId()
121         throws Exception JavaDoc
122     {
123         ModelValidationResult result = validate( "missing-dependency-groupId-pom.xml" );
124
125         assertEquals( 1, result.getMessageCount() );
126
127         assertTrue( result.getMessage( 0 ).indexOf( "'dependencies.dependency.groupId' is missing." ) > -1 );
128     }
129
130     public void testMissingDependencyVersion()
131         throws Exception JavaDoc
132     {
133         ModelValidationResult result = validate( "missing-dependency-version-pom.xml" );
134
135         assertEquals( 1, result.getMessageCount() );
136
137         assertTrue( result.getMessage( 0 ).indexOf( "'dependencies.dependency.version' is missing" ) > -1 );
138     }
139
140     public void testMissingDependencyManagementArtifactId()
141         throws Exception JavaDoc
142     {
143         ModelValidationResult result = validate( "missing-dependency-mgmt-artifactId-pom.xml" );
144
145         assertEquals( 1, result.getMessageCount() );
146
147         assertTrue( result.getMessage( 0 ).indexOf(
148             "'dependencyManagement.dependencies.dependency.artifactId' is missing." ) > -1 );
149     }
150
151     public void testMissingDependencyManagementGroupId()
152         throws Exception JavaDoc
153     {
154         ModelValidationResult result = validate( "missing-dependency-mgmt-groupId-pom.xml" );
155
156         assertEquals( 1, result.getMessageCount() );
157
158         assertTrue( result.getMessage( 0 ).indexOf(
159             "'dependencyManagement.dependencies.dependency.groupId' is missing." ) > -1 );
160     }
161
162     public void testMissingAll()
163         throws Exception JavaDoc
164     {
165         ModelValidationResult result = validate( "missing-1-pom.xml" );
166
167         assertEquals( 4, result.getMessageCount() );
168
169         List JavaDoc messages = result.getMessages();
170
171         assertTrue( messages.contains( "\'modelVersion\' is missing." ) );
172         assertTrue( messages.contains( "\'groupId\' is missing." ) );
173         assertTrue( messages.contains( "\'artifactId\' is missing." ) );
174         assertTrue( messages.contains( "\'version\' is missing." ) );
175         // type is inherited from the super pom
176
}
177
178     public void testMissingPluginArtifactId()
179         throws Exception JavaDoc
180     {
181         ModelValidationResult result = validate( "missing-plugin-artifactId-pom.xml" );
182
183         assertEquals( 1, result.getMessageCount() );
184
185         assertEquals( "'build.plugins.plugin.artifactId' is missing.", result.getMessage( 0 ) );
186     }
187
188     public void testMissingRepositoryId()
189         throws Exception JavaDoc
190     {
191         ModelValidationResult result = validate( "missing-repository-id-pom.xml" );
192
193         assertEquals( 4, result.getMessageCount() );
194
195         assertEquals( "'repositories.repository.id' is missing.", result.getMessage( 0 ) );
196
197         assertEquals( "'repositories.repository.url' is missing.", result.getMessage( 1 ) );
198
199         assertEquals( "'pluginRepositories.pluginRepository.id' is missing.", result.getMessage( 2 ) );
200
201         assertEquals( "'pluginRepositories.pluginRepository.url' is missing.", result.getMessage( 3 ) );
202     }
203
204     public void testMissingResourceDirectory()
205         throws Exception JavaDoc
206     {
207         ModelValidationResult result = validate( "missing-resource-directory-pom.xml" );
208
209         assertEquals( 2, result.getMessageCount() );
210
211         assertEquals( "'build.resources.resource.directory' is missing.", result.getMessage( 0 ) );
212
213         assertEquals( "'build.testResources.testResource.directory' is missing.", result.getMessage( 1 ) );
214     }
215
216     private ModelValidationResult validate( String JavaDoc testName )
217         throws Exception JavaDoc
218     {
219         Reader input = new FileReader JavaDoc( getFileForClasspathResource( "/validation/" + testName ) );
220
221         MavenXpp3Reader reader = new MavenXpp3Reader();
222
223         validator = (ModelValidator) lookup( ModelValidator.ROLE );
224
225         model = reader.read( input );
226
227         ModelValidationResult result = validator.validate( model );
228
229         assertNotNull( result );
230
231         input.close();
232
233         return result;
234     }
235 }
236
Popular Tags