1 package org.apache.maven.project.injection; 2 3 import junit.framework.TestCase; 4 5 import org.apache.maven.model.Build; 6 import org.apache.maven.model.BuildBase; 7 import org.apache.maven.model.Model; 8 import org.apache.maven.model.Plugin; 9 import org.apache.maven.model.PluginExecution; 10 import org.apache.maven.model.Profile; 11 import org.apache.maven.model.Repository; 12 import org.codehaus.plexus.util.xml.Xpp3Dom; 13 14 import java.util.List ; 15 16 public class DefaultProfileInjectorTest 17 extends TestCase 18 { 19 20 public void testProfilePluginConfigurationShouldOverrideCollidingModelPluginConfiguration() 21 { 22 Plugin mPlugin = new Plugin(); 23 mPlugin.setGroupId( "test" ); 24 mPlugin.setArtifactId( "test-artifact" ); 25 mPlugin.setVersion( "1.0-SNAPSHOT" ); 26 27 Xpp3Dom mConfigChild = new Xpp3Dom( "test" ); 28 mConfigChild.setValue( "value" ); 29 30 Xpp3Dom mConfigChild2 = new Xpp3Dom( "test2" ); 31 mConfigChild2.setValue( "value2" ); 32 33 Xpp3Dom mConfig = new Xpp3Dom( "configuration" ); 34 mConfig.addChild( mConfigChild ); 35 mConfig.addChild( mConfigChild2 ); 36 37 mPlugin.setConfiguration( mConfig ); 38 39 Build mBuild = new Build(); 40 mBuild.addPlugin( mPlugin ); 41 42 Model model = new Model(); 43 model.setBuild( mBuild ); 44 45 Plugin pPlugin = new Plugin(); 46 pPlugin.setGroupId( "test" ); 47 pPlugin.setArtifactId( "test-artifact" ); 48 pPlugin.setVersion( "1.0-SNAPSHOT" ); 49 50 Xpp3Dom pConfigChild = new Xpp3Dom( "test" ); 51 pConfigChild.setValue( "replacedValue" ); 52 53 Xpp3Dom pConfig = new Xpp3Dom( "configuration" ); 54 pConfig.addChild( pConfigChild ); 55 56 pPlugin.setConfiguration( pConfig ); 57 58 BuildBase pBuild = new BuildBase(); 59 pBuild.addPlugin( pPlugin ); 60 61 Profile profile = new Profile(); 62 profile.setId( "testId" ); 63 64 profile.setBuild( pBuild ); 65 66 new DefaultProfileInjector().inject( profile, model ); 67 68 Build rBuild = model.getBuild(); 69 Plugin rPlugin = (Plugin) rBuild.getPlugins().get( 0 ); 70 Xpp3Dom rConfig = (Xpp3Dom) rPlugin.getConfiguration(); 71 72 Xpp3Dom rChild = rConfig.getChild( "test" ); 73 74 assertEquals( "replacedValue", rChild.getValue() ); 75 76 Xpp3Dom rChild2 = rConfig.getChild( "test2" ); 77 78 assertEquals( "value2", rChild2.getValue() ); 79 } 80 81 public void testModelConfigShouldPersistWhenPluginHasExecConfigs() 82 { 83 Plugin mPlugin = new Plugin(); 84 mPlugin.setGroupId( "test" ); 85 mPlugin.setArtifactId( "test-artifact" ); 86 mPlugin.setVersion( "1.0-SNAPSHOT" ); 87 88 Xpp3Dom mConfigChild = new Xpp3Dom( "test" ); 89 mConfigChild.setValue( "value" ); 90 91 Xpp3Dom mConfigChild2 = new Xpp3Dom( "test2" ); 92 mConfigChild2.setValue( "value2" ); 93 94 Xpp3Dom mConfig = new Xpp3Dom( "configuration" ); 95 mConfig.addChild( mConfigChild ); 96 mConfig.addChild( mConfigChild2 ); 97 98 mPlugin.setConfiguration( mConfig ); 99 100 Build mBuild = new Build(); 101 mBuild.addPlugin( mPlugin ); 102 103 Model model = new Model(); 104 model.setBuild( mBuild ); 105 106 Plugin pPlugin = new Plugin(); 107 pPlugin.setGroupId( "test" ); 108 pPlugin.setArtifactId( "test-artifact" ); 109 pPlugin.setVersion( "1.0-SNAPSHOT" ); 110 111 PluginExecution pExec = new PluginExecution(); 112 pExec.setId("profile-injected"); 113 114 Xpp3Dom pConfigChild = new Xpp3Dom( "test" ); 115 pConfigChild.setValue( "replacedValue" ); 116 117 Xpp3Dom pConfig = new Xpp3Dom( "configuration" ); 118 pConfig.addChild( pConfigChild ); 119 120 pExec.setConfiguration( pConfig ); 121 122 pPlugin.addExecution( pExec ); 123 124 BuildBase pBuild = new BuildBase(); 125 pBuild.addPlugin( pPlugin ); 126 127 Profile profile = new Profile(); 128 profile.setId( "testId" ); 129 130 profile.setBuild( pBuild ); 131 132 new DefaultProfileInjector().inject( profile, model ); 133 134 Build rBuild = model.getBuild(); 135 Plugin rPlugin = (Plugin) rBuild.getPlugins().get( 0 ); 136 137 PluginExecution rExec = (PluginExecution) rPlugin.getExecutionsAsMap().get( "profile-injected" ); 138 139 assertNotNull( rExec ); 140 141 Xpp3Dom rExecConfig = (Xpp3Dom) rExec.getConfiguration(); 142 143 Xpp3Dom rChild = rExecConfig.getChild( "test" ); 144 145 assertEquals( "replacedValue", rChild.getValue() ); 146 147 Xpp3Dom rConfig = (Xpp3Dom) rPlugin.getConfiguration(); 148 149 assertNotNull( rConfig ); 150 151 Xpp3Dom rChild2 = rConfig.getChild( "test2" ); 152 153 assertEquals( "value2", rChild2.getValue() ); 154 } 155 156 public void testProfileRepositoryShouldOverrideModelRepository() 157 { 158 Repository mRepository = new Repository(); 159 mRepository.setId( "testId" ); 160 mRepository.setName( "Test repository" ); 161 mRepository.setUrl( "http://www.google.com" ); 162 163 Model model = new Model(); 164 model.addRepository( mRepository ); 165 166 Repository pRepository = new Repository(); 167 pRepository.setId( "testId" ); 168 pRepository.setName( "Test repository" ); 169 pRepository.setUrl( "http://www.yahoo.com" ); 170 171 Profile profile = new Profile(); 172 profile.setId( "testId" ); 173 174 profile.addRepository( pRepository ); 175 176 new DefaultProfileInjector().inject( profile, model ); 177 178 Repository rRepository = (Repository) model.getRepositories().get( 0 ); 179 180 assertEquals( "http://www.yahoo.com", rRepository.getUrl() ); 181 } 182 183 public void testShouldPreserveModelModulesWhenProfileHasNone() 184 { 185 Model model = new Model(); 186 187 model.addModule( "module1" ); 188 189 Profile profile = new Profile(); 190 profile.setId( "testId" ); 191 192 new DefaultProfileInjector().inject( profile, model ); 193 194 List rModules = model.getModules(); 195 196 assertEquals( 1, rModules.size() ); 197 assertEquals( "module1", rModules.get( 0 ) ); 198 } 199 200 } 201 | Popular Tags |