package org.codehaus.mojo.setup.scm; import java.io.File; import java.lang.reflect.Method; import org.apache.maven.scm.provider.vss.commands.VssCommandLineUtils; import org.apache.maven.scm.providers.vss.settings.Settings; import org.codehaus.mojo.setup.AbstractSetupMojo; /* * This test can't work unless CvsUtil has a way to get the settingsdirectory */ public class VssSettingsSetupMojoTest extends AbstractScmSettingsSetupMojoTest { private VssSettingsSetupMojo mojo = new VssSettingsSetupMojo(); @Override protected void onSetUp() throws Exception { super.onSetUp(); File testPom = new File( getBasedir(), "src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml" ); mojo = (VssSettingsSetupMojo) lookupMojo( "vss-settings", testPom ); } @Override protected void prepareMojo( File workDirectory ) throws Exception { super.prepareMojo( workDirectory ); Method setScmConfDirMethod = VssCommandLineUtils.class.getDeclaredMethod( "setScmConfDir", File.class ); try { setScmConfDirMethod.setAccessible( true ); setScmConfDirMethod.invoke( null, new File( workDirectory, ".scm" ) ); } finally { setScmConfDirMethod.setAccessible( false ); } setTargetFile( VssCommandLineUtils.getScmConfFile() ); } @Override protected AbstractSetupMojo getMojo() { return mojo; } protected String getDefaultTemplateFilename() { return VssSettingsSetupMojo.DEFAULT_TEMPLATE_FILENAME; } protected String getTestPrefix() { return "vss"; } @Override protected String getTemplateBase() { return "vss-settings"; } @Override protected void validateAsDefaultTemplate() throws Exception { Settings settings = VssCommandLineUtils.getSettings(); assertEquals( "vssDirectory_defaultTemplate", settings.getVssDirectory() ); } @Override protected void validateAsCustomTemplate() throws Exception { Settings settings = VssCommandLineUtils.getSettings(); assertEquals( "vssDirectory_customTemplate", settings.getVssDirectory() ); } @Override protected void validateAsMinimumTemplate() throws Exception { Settings settings = VssCommandLineUtils.getSettings(); assertEquals( null, settings.getVssDirectory() ); } @Override protected void validateAsFilteredTemplate() throws Exception { Settings settings = VssCommandLineUtils.getSettings(); assertEquals( "vssDirectory_filteredTemplate", settings.getVssDirectory() ); } @Override protected void validateAsDefaultSettings() throws Exception { Settings settings = VssCommandLineUtils.getSettings(); assertEquals( "vssDirectory_currentSettings", settings.getVssDirectory() ); } @Override protected void validateAsNoSettings() throws Exception { Settings settings = VssCommandLineUtils.getSettings(); //if there is no settings file, setting will be null!! assertEquals( null, settings ); } }