001 package org.apache.maven.profiles.manager;
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements. See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership. The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License. You may obtain a copy of the License at
011 *
012 * http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied. See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022 import java.util.List;
023 import java.util.Properties;
024
025 import org.apache.maven.model.Activation;
026 import org.apache.maven.model.ActivationProperty;
027 import org.apache.maven.model.Profile;
028 import org.apache.maven.profiles.DefaultProfileManager;
029 import org.apache.maven.profiles.ProfileManager;
030 import org.codehaus.plexus.PlexusTestCase;
031
032 public class DefaultProfileManagerTest
033 extends PlexusTestCase
034 {
035
036 public void setUp()
037 throws Exception
038 {
039 super.setUp();
040 }
041
042 public void testShouldActivateDefaultProfile()
043 throws Exception
044 {
045 Profile notActivated = new Profile();
046 notActivated.setId( "notActivated" );
047
048 Activation nonActivation = new Activation();
049
050 nonActivation.setJdk( "19.2" );
051
052 notActivated.setActivation( nonActivation );
053
054 Profile defaultActivated = new Profile();
055 defaultActivated.setId( "defaultActivated" );
056
057 Activation defaultActivation = new Activation();
058
059 defaultActivation.setActiveByDefault( true );
060
061 defaultActivated.setActivation( defaultActivation );
062
063 Properties props = System.getProperties();
064
065 ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
066
067 profileManager.addProfile( notActivated );
068 profileManager.addProfile( defaultActivated );
069
070 List active = profileManager.getActiveProfiles();
071
072 assertNotNull( active );
073 assertEquals( 1, active.size() );
074 assertEquals( "defaultActivated", ( (Profile) active.get( 0 ) ).getId() );
075 }
076
077 public void testShouldNotActivateDefaultProfile()
078 throws Exception
079 {
080 Profile syspropActivated = new Profile();
081 syspropActivated.setId( "syspropActivated" );
082
083 Activation syspropActivation = new Activation();
084
085 ActivationProperty syspropProperty = new ActivationProperty();
086 syspropProperty.setName( "java.version" );
087
088 syspropActivation.setProperty( syspropProperty );
089
090 syspropActivated.setActivation( syspropActivation );
091
092 Profile defaultActivated = new Profile();
093 defaultActivated.setId( "defaultActivated" );
094
095 Activation defaultActivation = new Activation();
096
097 defaultActivation.setActiveByDefault( true );
098
099 defaultActivated.setActivation( defaultActivation );
100
101 Properties props = System.getProperties();
102
103 ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
104
105 profileManager.addProfile( syspropActivated );
106 profileManager.addProfile( defaultActivated );
107
108 List active = profileManager.getActiveProfiles();
109
110 assertNotNull( active );
111 assertEquals( 1, active.size() );
112 assertEquals( "syspropActivated", ( (Profile) active.get( 0 ) ).getId() );
113 }
114
115
116 public void testShouldNotActivateReversalOfPresentSystemProperty()
117 throws Exception
118 {
119 Profile syspropActivated = new Profile();
120 syspropActivated.setId( "syspropActivated" );
121
122 Activation syspropActivation = new Activation();
123
124 ActivationProperty syspropProperty = new ActivationProperty();
125 syspropProperty.setName( "!java.version" );
126
127 syspropActivation.setProperty( syspropProperty );
128
129 syspropActivated.setActivation( syspropActivation );
130
131 Properties props = System.getProperties();
132
133 ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
134
135 profileManager.addProfile( syspropActivated );
136
137 List active = profileManager.getActiveProfiles();
138
139 assertNotNull( active );
140 assertEquals( 0, active.size() );
141 }
142
143 public void testShouldOverrideAndActivateInactiveProfile()
144 throws Exception
145 {
146 Profile syspropActivated = new Profile();
147 syspropActivated.setId( "syspropActivated" );
148
149 Activation syspropActivation = new Activation();
150
151 ActivationProperty syspropProperty = new ActivationProperty();
152 syspropProperty.setName( "!java.version" );
153
154 syspropActivation.setProperty( syspropProperty );
155
156 syspropActivated.setActivation( syspropActivation );
157
158 Properties props = System.getProperties();
159
160 ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
161
162 profileManager.addProfile( syspropActivated );
163
164 profileManager.explicitlyActivate( "syspropActivated" );
165
166 List active = profileManager.getActiveProfiles();
167
168 assertNotNull( active );
169 assertEquals( 1, active.size() );
170 assertEquals( "syspropActivated", ( (Profile) active.get( 0 ) ).getId() );
171 }
172
173 public void testShouldOverrideAndDeactivateActiveProfile()
174 throws Exception
175 {
176 Profile syspropActivated = new Profile();
177 syspropActivated.setId( "syspropActivated" );
178
179 Activation syspropActivation = new Activation();
180
181 ActivationProperty syspropProperty = new ActivationProperty();
182 syspropProperty.setName( "java.version" );
183
184 syspropActivation.setProperty( syspropProperty );
185
186 syspropActivated.setActivation( syspropActivation );
187
188 Properties props = System.getProperties();
189
190 ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
191
192 profileManager.addProfile( syspropActivated );
193
194 profileManager.explicitlyDeactivate( "syspropActivated" );
195
196 List active = profileManager.getActiveProfiles();
197
198 assertNotNull( active );
199 assertEquals( 0, active.size() );
200 }
201 /*
202 public void testOsActivationProfile()
203 throws Exception
204 {
205 Profile osActivated = new Profile();
206 osActivated.setId( "os-profile" );
207
208 Activation osActivation = new Activation();
209
210 ActivationOS activationOS = new ActivationOS();
211
212 activationOS.setName( "!dddd" );
213
214 osActivation.setOs( activationOS );
215
216 osActivated.setActivation( osActivation );
217
218 Properties props = System.getProperties();
219 ProfileActivationContext ctx = new ProfileActivationContext( props, false );
220
221 ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
222
223 profileManager.addProfile( osActivated );
224
225 List active = profileManager.getActiveProfiles( null );
226
227 assertNotNull( active );
228 assertEquals( 1, active.size() );
229 }
230 */
231
232 }