package com.aptana.rdt.internal.core.parser.warnings;
import junit.framework.TestCase;
import org.jruby.ast.Node;
import org.rubypeople.rdt.core.compiler.IProblem;
import org.rubypeople.rdt.core.parser.warnings.RubyLintVisitor;
import org.rubypeople.rdt.internal.core.parser.RubyParser;
public abstract class WarningVisitorTest extends TestCase
{
private RubyParser parser;
private RubyLintVisitor visitor;
@Override
protected void setUp() throws Exception
{
super.setUp();
parser = new RubyParser();
}
protected void parse(String code)
{
Node root = parser.parse(code).getAST();
visitor = createVisitor(code);
root.accept(visitor);
}
public int numberOfProblems()
{
return visitor.getProblems().size();
}
protected IProblem getProblemAtLine(int i)
{
return visitor.getProblems().get(i);
}
abstract protected RubyLintVisitor createVisitor(String code);
}