1 package org.apache.maven.project.injection; 2 3 18 19 import junit.framework.TestCase; 20 21 import org.apache.maven.model.Dependency; 22 import org.apache.maven.model.DependencyManagement; 23 import org.apache.maven.model.Exclusion; 24 import org.apache.maven.model.Model; 25 26 import java.util.List ; 27 28 31 public class DefaultModelDefaultsInjectorTest 32 extends TestCase 33 { 34 public void testShouldConstructWithNoParams() 35 { 36 new DefaultModelDefaultsInjector(); 37 } 38 39 public void testShouldSucceedInMergingDependencyWithDependency() 40 { 41 Model model = new Model(); 42 43 Dependency dep = new Dependency(); 44 dep.setGroupId( "myGroup" ); 45 dep.setArtifactId( "myArtifact" ); 46 47 model.addDependency( dep ); 48 49 Dependency def = new Dependency(); 50 def.setGroupId( dep.getGroupId() ); 51 def.setArtifactId( dep.getArtifactId() ); 52 def.setVersion( "1.0.1" ); 53 def.setScope( "scope" ); 54 55 DependencyManagement depMgmt = new DependencyManagement(); 56 57 depMgmt.addDependency( def ); 58 59 model.setDependencyManagement( depMgmt ); 60 61 new DefaultModelDefaultsInjector().injectDefaults( model ); 62 63 List deps = model.getDependencies(); 64 assertEquals( 1, deps.size() ); 65 66 Dependency result = (Dependency) deps.get( 0 ); 67 assertEquals( def.getVersion(), result.getVersion() ); 68 } 69 70 public void testShouldMergeDependencyExclusionsFromDefaultsToDependency() 71 { 72 Model model = new Model(); 73 74 Dependency dep = new Dependency(); 75 dep.setGroupId( "myGroup" ); 76 dep.setArtifactId( "myArtifact" ); 77 78 model.addDependency( dep ); 79 80 Dependency def = new Dependency(); 81 def.setGroupId( dep.getGroupId() ); 82 def.setArtifactId( dep.getArtifactId() ); 83 def.setVersion( "1.0.1" ); 84 def.setScope( "scope" ); 85 86 Exclusion exc = new Exclusion(); 87 exc.setArtifactId( "mydep" ); 88 exc.setGroupId( "mygrp" ); 89 90 def.addExclusion( exc ); 91 92 DependencyManagement depMgmt = new DependencyManagement(); 93 94 depMgmt.addDependency( def ); 95 96 model.setDependencyManagement( depMgmt ); 97 98 new DefaultModelDefaultsInjector().injectDefaults( model ); 99 100 List deps = model.getDependencies(); 101 assertEquals( 1, deps.size() ); 102 103 Dependency result = (Dependency) deps.get( 0 ); 104 assertEquals( def.getVersion(), result.getVersion() ); 105 106 List resultExclusions = result.getExclusions(); 107 assertNotNull( resultExclusions ); 108 assertEquals( 1, resultExclusions.size() ); 109 110 Exclusion resultExclusion = (Exclusion) resultExclusions.get( 0 ); 111 assertEquals( "mydep", resultExclusion.getArtifactId() ); 112 assertEquals( "mygrp", resultExclusion.getGroupId() ); 113 } 114 115 public void testShouldMergeDefaultUrlAndArtifactWhenDependencyDoesntSupplyVersion() 116 { 117 Model model = new Model(); 118 119 Dependency dep = new Dependency(); 120 dep.setGroupId( "myGroup" ); 121 dep.setArtifactId( "myArtifact" ); 122 123 model.addDependency( dep ); 124 125 Dependency def = new Dependency(); 126 def.setGroupId( dep.getGroupId() ); 127 def.setArtifactId( dep.getArtifactId() ); 128 def.setVersion( "1.0.1" ); 129 130 DependencyManagement depMgmt = new DependencyManagement(); 131 132 depMgmt.addDependency( def ); 133 134 model.setDependencyManagement( depMgmt ); 135 136 new DefaultModelDefaultsInjector().injectDefaults( model ); 137 138 List deps = model.getDependencies(); 139 assertEquals( 1, deps.size() ); 140 141 Dependency result = (Dependency) deps.get( 0 ); 142 assertEquals( def.getVersion(), result.getVersion() ); 143 } 144 145 public void testShouldNotMergeDefaultUrlOrArtifactWhenDependencySuppliesVersion() 146 { 147 Model model = new Model(); 148 149 Dependency dep = new Dependency(); 150 dep.setGroupId( "myGroup" ); 151 dep.setArtifactId( "myArtifact" ); 152 dep.setVersion( "1.0.1" ); 153 154 model.addDependency( dep ); 155 156 Dependency def = new Dependency(); 157 def.setGroupId( dep.getGroupId() ); 158 def.setArtifactId( dep.getArtifactId() ); 159 160 DependencyManagement depMgmt = new DependencyManagement(); 161 162 depMgmt.addDependency( def ); 163 164 model.setDependencyManagement( depMgmt ); 165 166 new DefaultModelDefaultsInjector().injectDefaults( model ); 167 168 List deps = model.getDependencies(); 169 assertEquals( 1, deps.size() ); 170 171 Dependency result = (Dependency) deps.get( 0 ); 172 assertEquals( dep.getVersion(), result.getVersion() ); 173 } 174 175 public void testShouldMergeDefaultPropertiesWhenDependencyDoesntSupplyProperties() 176 { 177 Model model = new Model(); 178 179 Dependency dep = new Dependency(); 180 dep.setGroupId( "myGroup" ); 181 dep.setArtifactId( "myArtifact" ); 182 dep.setVersion( "1.0.1" ); 183 184 model.addDependency( dep ); 185 186 Dependency def = new Dependency(); 187 def.setGroupId( dep.getGroupId() ); 188 def.setArtifactId( dep.getArtifactId() ); 189 190 DependencyManagement depMgmt = new DependencyManagement(); 191 192 depMgmt.addDependency( def ); 193 194 model.setDependencyManagement( depMgmt ); 195 196 new DefaultModelDefaultsInjector().injectDefaults( model ); 197 198 List deps = model.getDependencies(); 199 assertEquals( 1, deps.size() ); 200 } 201 202 public void testShouldNotMergeDefaultPropertiesWhenDependencySuppliesProperties() 203 { 204 Model model = new Model(); 205 206 Dependency dep = new Dependency(); 207 dep.setGroupId( "myGroup" ); 208 dep.setArtifactId( "myArtifact" ); 209 dep.setVersion( "1.0.1" ); 210 211 model.addDependency( dep ); 212 213 Dependency def = new Dependency(); 214 def.setGroupId( dep.getGroupId() ); 215 def.setArtifactId( dep.getArtifactId() ); 216 217 DependencyManagement depMgmt = new DependencyManagement(); 218 219 depMgmt.addDependency( def ); 220 221 model.setDependencyManagement( depMgmt ); 222 223 new DefaultModelDefaultsInjector().injectDefaults( model ); 224 225 List deps = model.getDependencies(); 226 assertEquals( 1, deps.size() ); 227 } 228 229 public void testShouldMergeDefaultScopeWhenDependencyDoesntSupplyScope() 230 { 231 Model model = new Model(); 232 233 Dependency dep = new Dependency(); 234 dep.setGroupId( "myGroup" ); 235 dep.setArtifactId( "myArtifact" ); 236 dep.setVersion( "1.0.1" ); 237 dep.setScope( "scope" ); 238 239 model.addDependency( dep ); 240 241 Dependency def = new Dependency(); 242 def.setGroupId( dep.getGroupId() ); 243 def.setArtifactId( dep.getArtifactId() ); 244 245 DependencyManagement depMgmt = new DependencyManagement(); 246 247 depMgmt.addDependency( def ); 248 249 model.setDependencyManagement( depMgmt ); 250 251 new DefaultModelDefaultsInjector().injectDefaults( model ); 252 253 List deps = model.getDependencies(); 254 assertEquals( 1, deps.size() ); 255 256 Dependency result = (Dependency) deps.get( 0 ); 257 258 assertEquals( "scope", result.getScope() ); 259 } 260 261 public void testShouldNotMergeDefaultScopeWhenDependencySuppliesScope() 262 { 263 Model model = new Model(); 264 265 Dependency dep = new Dependency(); 266 dep.setGroupId( "myGroup" ); 267 dep.setArtifactId( "myArtifact" ); 268 dep.setVersion( "1.0.1" ); 269 dep.setScope( "scope" ); 270 271 model.addDependency( dep ); 272 273 Dependency def = new Dependency(); 274 def.setGroupId( dep.getGroupId() ); 275 def.setArtifactId( dep.getArtifactId() ); 276 def.setScope( "default" ); 277 278 DependencyManagement depMgmt = new DependencyManagement(); 279 280 depMgmt.addDependency( def ); 281 282 model.setDependencyManagement( depMgmt ); 283 284 new DefaultModelDefaultsInjector().injectDefaults( model ); 285 286 List deps = model.getDependencies(); 287 assertEquals( 1, deps.size() ); 288 289 Dependency result = (Dependency) deps.get( 0 ); 290 assertEquals( "scope", result.getScope() ); 291 } 292 293 public void testShouldRejectDependencyWhereNoVersionIsFoundAfterDefaultsInjection() 294 { 295 Model model = new Model(); 296 297 Dependency dep = new Dependency(); 298 dep.setGroupId( "myGroup" ); 299 dep.setArtifactId( "myArtifact" ); 300 301 model.addDependency( dep ); 302 303 Dependency def = new Dependency(); 304 def.setGroupId( dep.getGroupId() ); 305 def.setArtifactId( dep.getArtifactId() ); 306 307 DependencyManagement depMgmt = new DependencyManagement(); 308 309 depMgmt.addDependency( def ); 310 311 model.setDependencyManagement( depMgmt ); 312 313 new DefaultModelDefaultsInjector().injectDefaults( model ); 316 Dependency dependency = (Dependency) model.getDependencies().get( 0 ); 317 assertNull( "check version is null", dependency.getVersion() ); 318 } 325 326 } 327 | Popular Tags |