KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > maven > project > injection > DefaultProfileInjectorTest


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 JavaDoc;
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 JavaDoc rModules = model.getModules();
195
196         assertEquals( 1, rModules.size() );
197         assertEquals( "module1", rModules.get( 0 ) );
198     }
199
200 }
201
Popular Tags