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 UserSettingsSetupMojoTest extends AbstractSettingsSetupMojoTest { private AbstractSetupMojo setupMojo; final String settingsPath = ".m2/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 = (AbstractSetupMojo) lookupMojo( "user-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().setUserSettingsFile( settingsFile ); targetFile = session.getRequest().getUserSettingsFile(); if( targetFile.exists() ) { MavenExecutionRequestPopulator populator = lookup( MavenExecutionRequestPopulator.class ); SettingsReader settingsReader = lookup( SettingsReader.class ); populator.populateFromSettings( session.getRequest(), settingsReader.read( settingsFile, null ) ); } } @Override protected String getSettingsPathVariableName() { return "userSettingsPath"; } @Override protected AbstractSetupMojo getMojo() { return setupMojo; } @Override protected File getDirectoryDefaultTargetFile() { return getTestFile( "src/test/resources/defaultUserHome" ); } @Override protected File getDirectoryMissingTargetFile() { return getTestFile( "src/test/resources/emptyUserHome" ); } @Override protected File getDirectoryMinimumTargetFile() { return getTestFile( "src/test/resources/minimalUserHome" ); } @Override protected String getTestPrefix() { return "usersettings"; } @Override protected String getPropertyValueSuffix() { return "user"; } @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_currentUserSettings", settings.getLocalRepository() ); assertEquals( false, settings.isInteractiveMode() ); assertEquals( true, settings.isOffline() ); assertEquals( true, settings.isUsePluginRegistry() ); } }