1 package org.apache.maven.project.validation; 2 3 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 ; 24 import java.io.Reader ; 25 import java.util.List ; 26 27 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 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 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 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 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 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 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 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 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 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 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 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 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 164 { 165 ModelValidationResult result = validate( "missing-1-pom.xml" ); 166 167 assertEquals( 4, result.getMessageCount() ); 168 169 List 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 } 177 178 public void testMissingPluginArtifactId() 179 throws Exception 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 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 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 testName ) 217 throws Exception 218 { 219 Reader input = new FileReader ( 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 |