package com.aptana.rdt.internal.core.parser.warnings; import java.util.List; import org.rubypeople.rdt.core.RubyCore; import org.rubypeople.rdt.core.compiler.CategorizedProblem; import org.rubypeople.rdt.core.parser.warnings.RubyLintVisitor; import org.rubypeople.rdt.internal.core.parser.warnings.AbstractRubyLintVisitorTestCase; import com.aptana.rdt.IProblem; import com.aptana.rdt.internal.parser.warnings.UncommunicativeName; public class UncommunicativeNameTest extends AbstractRubyLintVisitorTestCase { @Override protected RubyLintVisitor createVisitor(String src) { return new UncommunicativeName(src) { @Override protected String getSeverity() { return RubyCore.WARNING; } }; } public void testOneCharDefnName() { String src = "def i(quoted)\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharWithDigitDefnName() { String src = "def i9(quoted)\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharDefsName() { String src = "def self.i(quoted)\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharWithDigitDefsName() { String src = "def self.i9(quoted)\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharBlockVarName() { String src = "3.times {|i| puts i }"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharWithDigitBlockVarName() { String src = "3.times {|i0| puts i0 }"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharInstanceVarName() { String src = "def method\n" + " @i0 = 0\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharWithDigitInstanceVarName() { String src = "def method\n" + " @i = 0\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOnlyWarnsOnceAboutInstanceVariablesWithShortNames() { String src = "def method\n" + " @i = 0\n" + " puts @i\n" + " @i = 1\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOnlyWarnsOnceAboutClassVariablesWithShortNames() { String src = "class Chris\n def method\n @@i = 0\n @@i = 1\n end\nend"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharClassVarName() { String src = "def method\n" + " @@i0 = 0\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharWithDigitClassVarName() { String src = "def method\n" + " @@i = 0\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharClassName() { String src = "def C\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharWithDigitClassName() { String src = "class C1\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharModuleName() { String src = "module C\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } public void testOneCharWithDigitModuleName() { String src = "module C1\n" + "end"; List<CategorizedProblem> problems = getProblems(src); assertEquals(1, problems.size()); assertEquals(IProblem.UncommunicativeName, problems.get(0).getID()); } }