package org.codehaus.mojo.setup.settings; import java.io.File; import java.io.FileInputStream; import org.apache.maven.execution.MavenExecutionRequestPopulator; import org.apache.maven.execution.MavenSession; import org.apache.maven.settings.Settings; import org.apache.maven.settings.io.SettingsReader; import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader; import org.codehaus.mojo.setup.AbstractSetupMojo; public class GlobalSettingsSetupMojoTest extends AbstractSettingsSetupMojoTest { private GlobalSettingsSetupMojo setupMojo; private final String settingsPath = "apache-maven-3/conf/settings.xml"; private File targetFile; @Override protected void onSetUp() throws Exception { File testPom = new File( getBasedir(), "src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml" ); setupMojo = (GlobalSettingsSetupMojo) lookupMojo( "global-settings", testPom ); } @Override protected void prepareMojo( File workDirectory ) throws Exception { super.prepareMojo( workDirectory ); File settingsFile = new File( workDirectory.getPath() + File.separator + settingsPath ); MavenSession session = (MavenSession) getVariableValueFromObject( getMojo(), "session" ); session.getRequest().setGlobalSettingsFile( settingsFile ); targetFile = session.getRequest().getGlobalSettingsFile(); if ( targetFile.exists() ) { // lookup components MavenExecutionRequestPopulator populator = lookup( MavenExecutionRequestPopulator.class ); SettingsReader settingsReader = lookup( SettingsReader.class ); populator.populateFromSettings( session.getRequest(), settingsReader.read( settingsFile, null ) ); } } @Override protected String getSettingsPathVariableName() { return "globalSettingsPath"; } @Override protected AbstractSetupMojo getMojo() { return setupMojo; } @Override protected String getTestPrefix() { return "globalsettings"; } @Override protected String getPropertyValueSuffix() { return "global"; } @Override protected File getDirectoryDefaultTargetFile() { return getTestFile( "src/test/resources/defaultGlobalHome" ); } @Override protected File getDirectoryMissingTargetFile() { return getTestFile( "src/test/resources/emptyGlobalHome" ); } @Override protected File getDirectoryMinimumTargetFile() { return getTestFile( "src/test/resources/minimalGlobalHome" ); } @Override protected File getTargetFile() { return targetFile; } @Override protected void validateAsDefaultSettings() throws Exception { SettingsXpp3Reader reader = new SettingsXpp3Reader(); Settings settings = reader.read( new FileInputStream( getTargetFile() ) ); assertEquals( "localRepository_currentGlobalSettings", settings.getLocalRepository() ); assertEquals( false, settings.isInteractiveMode() ); assertEquals( true, settings.isOffline() ); assertEquals( true, settings.isUsePluginRegistry() ); } }