package org.rubypeople.rdt.internal.core.parser.warnings; import org.rubypeople.rdt.core.RubyCore; import org.rubypeople.rdt.core.parser.warnings.RubyLintVisitor; public class CoreClassReOpeningTest extends AbstractRubyLintVisitorTestCase { @Override protected RubyLintVisitor createVisitor(String src) { return new CoreClassReOpening(null, src) { @Override protected boolean methodExistsOnType(String typeName, String methodName) { return typeName.equals("String") && methodName.equals("to_s"); } @Override protected String getSeverity() { return RubyCore.WARNING; } }; } public void testRedefiningCoreClassMethod() throws Exception { String src = "class String\n" + " def to_s\n" + " 1\n" + " end\n" + "end\n"; assertEquals(1, getProblems(src).size()); } public void testAddingNewMethodToCoreClassIsntAProblem() throws Exception { String src = "class String\n" + " def new_method\n" + " 1\n" + " end\n" + "end\n"; assertEquals(0, getProblems(src).size()); } }