blob: 442493a64c74ec2b2d9150abfe405e0c9ea6d925 [file] [log] [blame]
package org.apache.maven.profiles.manager;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import java.util.List;
import java.util.Properties;
import org.apache.maven.test.PlexusTestCase;
import org.apache.maven.model.Activation;
import org.apache.maven.model.ActivationProperty;
import org.apache.maven.model.Profile;
import org.apache.maven.profiles.DefaultProfileManager;
import org.apache.maven.profiles.ProfileManager;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
public class DefaultProfileManagerTest
extends PlexusTestCase
{
@Test
public void testShouldActivateDefaultProfile()
throws Exception
{
Profile notActivated = new Profile();
notActivated.setId( "notActivated" );
Activation nonActivation = new Activation();
nonActivation.setJdk( "19.2" );
notActivated.setActivation( nonActivation );
Profile defaultActivated = new Profile();
defaultActivated.setId( "defaultActivated" );
Activation defaultActivation = new Activation();
defaultActivation.setActiveByDefault( true );
defaultActivated.setActivation( defaultActivation );
Properties props = System.getProperties();
ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
profileManager.addProfile( notActivated );
profileManager.addProfile( defaultActivated );
List active = profileManager.getActiveProfiles();
assertNotNull( active );
assertEquals( 1, active.size() );
assertEquals( "defaultActivated", ( (Profile) active.get( 0 ) ).getId() );
}
@Test
public void testShouldNotActivateDefaultProfile()
throws Exception
{
Profile syspropActivated = new Profile();
syspropActivated.setId( "syspropActivated" );
Activation syspropActivation = new Activation();
ActivationProperty syspropProperty = new ActivationProperty();
syspropProperty.setName( "java.version" );
syspropActivation.setProperty( syspropProperty );
syspropActivated.setActivation( syspropActivation );
Profile defaultActivated = new Profile();
defaultActivated.setId( "defaultActivated" );
Activation defaultActivation = new Activation();
defaultActivation.setActiveByDefault( true );
defaultActivated.setActivation( defaultActivation );
Properties props = System.getProperties();
ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
profileManager.addProfile( syspropActivated );
profileManager.addProfile( defaultActivated );
List active = profileManager.getActiveProfiles();
assertNotNull( active );
assertEquals( 1, active.size() );
assertEquals( "syspropActivated", ( (Profile) active.get( 0 ) ).getId() );
}
@Test
public void testShouldNotActivateReversalOfPresentSystemProperty()
throws Exception
{
Profile syspropActivated = new Profile();
syspropActivated.setId( "syspropActivated" );
Activation syspropActivation = new Activation();
ActivationProperty syspropProperty = new ActivationProperty();
syspropProperty.setName( "!java.version" );
syspropActivation.setProperty( syspropProperty );
syspropActivated.setActivation( syspropActivation );
Properties props = System.getProperties();
ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
profileManager.addProfile( syspropActivated );
List active = profileManager.getActiveProfiles();
assertNotNull( active );
assertEquals( 0, active.size() );
}
@Test
public void testShouldOverrideAndActivateInactiveProfile()
throws Exception
{
Profile syspropActivated = new Profile();
syspropActivated.setId( "syspropActivated" );
Activation syspropActivation = new Activation();
ActivationProperty syspropProperty = new ActivationProperty();
syspropProperty.setName( "!java.version" );
syspropActivation.setProperty( syspropProperty );
syspropActivated.setActivation( syspropActivation );
Properties props = System.getProperties();
ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
profileManager.addProfile( syspropActivated );
profileManager.explicitlyActivate( "syspropActivated" );
List active = profileManager.getActiveProfiles();
assertNotNull( active );
assertEquals( 1, active.size() );
assertEquals( "syspropActivated", ( (Profile) active.get( 0 ) ).getId() );
}
@Test
public void testShouldOverrideAndDeactivateActiveProfile()
throws Exception
{
Profile syspropActivated = new Profile();
syspropActivated.setId( "syspropActivated" );
Activation syspropActivation = new Activation();
ActivationProperty syspropProperty = new ActivationProperty();
syspropProperty.setName( "java.version" );
syspropActivation.setProperty( syspropProperty );
syspropActivated.setActivation( syspropActivation );
Properties props = System.getProperties();
ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
profileManager.addProfile( syspropActivated );
profileManager.explicitlyDeactivate( "syspropActivated" );
List active = profileManager.getActiveProfiles();
assertNotNull( active );
assertEquals( 0, active.size() );
}
/*
public void testOsActivationProfile()
throws Exception
{
Profile osActivated = new Profile();
osActivated.setId( "os-profile" );
Activation osActivation = new Activation();
ActivationOS activationOS = new ActivationOS();
activationOS.setName( "!dddd" );
osActivation.setOs( activationOS );
osActivated.setActivation( osActivation );
Properties props = System.getProperties();
ProfileActivationContext ctx = new ProfileActivationContext( props, false );
ProfileManager profileManager = new DefaultProfileManager( getContainer(), props );
profileManager.addProfile( osActivated );
List active = profileManager.getActiveProfiles( null );
assertNotNull( active );
assertEquals( 1, active.size() );
}
*/
}