package hudson.plugins.clover;
import junit.framework.TestCase;
import hudson.util.LogTaskListener;
import hudson.Launcher;
import hudson.Proc;
import hudson.FilePath;
import hudson.remoting.Channel;
import hudson.model.TaskListener;
import java.util.logging.Logger;
import java.util.logging.Level;
import java.util.Map;
import java.io.IOException;
import java.io.OutputStream;
import com.atlassian.clover.api.ci.CIOptions;
/**
*/
public class CloverBuildWrapperTest extends TestCase
{
public void testDecoratinLauncher() throws IOException
{
TaskListener listener = new LogTaskListener(Logger.getLogger(getName()), Level.ALL);
Launcher outer = new Launcher.LocalLauncher(listener);
CIOptions.Builder options = new CIOptions.Builder();
CloverBuildWrapper.CloverDecoratingLauncher cloverLauncher = new CloverBuildWrapper.CloverDecoratingLauncher(outer, options, "MYLICENSESTRING");
Launcher.ProcStarter starter = new Launcher(cloverLauncher) {
public Proc launch(ProcStarter starter) throws IOException {
return null;
}
public Channel launchChannel(String[] cmd, OutputStream out, FilePath workDir, Map<String, String> envVars) throws IOException, InterruptedException {
return null;
}
public void kill(Map<String, String> modelEnvVars) throws IOException, InterruptedException { }
}.launch();
starter.cmds("cmd.exe", "/C", "\"ant.bat clean test.run && exit %%ERRORLEVEL%%\"");
starter.pwd("target");
starter.masks(new boolean[starter.cmds().size()] );
cloverLauncher.decorateArgs(starter);
int i = 0;
assertEquals("cmd.exe", starter.cmds().get(i++));
assertEquals("/C", starter.cmds().get(i++));
assertEquals("ant.bat", starter.cmds().get(i++));
assertEquals("clover.fullclean", starter.cmds().get(i++));
}
}