package de.saumya.mojo.runit;
import de.saumya.mojo.tests.AbstractMavenTestScriptFactory;
public abstract class AbstractRunitMavenTestScriptFactory extends AbstractMavenTestScriptFactory {
@Override
protected void getRunnerScript(StringBuilder builder) {
getTeeClass(builder);
getAddTestCases(builder);
getTestRunnerScript(builder);
}
abstract void getTestRunnerScript(StringBuilder builder);
@Override
protected void getResultsScript(StringBuilder builder) {
// just creates error since the tests run on exit hook
}
void getTeeClass(StringBuilder builder){
builder.append("class Tee < File\n");
builder.append(" def write(*args)\n");
builder.append(" super\n" );
builder.append(" STDOUT.write *args\n" );
builder.append(" end\n");
builder.append(" def flush(*args)\n" );
builder.append(" super\n" );
builder.append(" STDOUT.flush *args\n");
builder.append(" end\n" );
builder.append("end\n");
}
void getAddTestCases(StringBuilder builder){
builder.append( "require 'test/unit'\n");
builder.append("Dir[SOURCE_DIR].each { |f| require f if File.file? f }\n");
}
}