Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/symbols In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8729/src/org/rubypeople/rdt/internal/core/symbols Added Files: TC_SymbolIndex.java TC_Location.java TS_CoreSymbols.java TC_ClassSymbol.java Log Message: Refactored RubyBuilder into several smaller classes. Wrote UTs for a few of them. Began work on a SymbolIndex. --- NEW FILE: TC_ClassSymbol.java --- package org.rubypeople.rdt.internal.core.symbols; import junit.framework.TestCase; public class TC_ClassSymbol extends TestCase { private ClassSymbol fooClass; private ClassSymbol fooClass2; private ClassSymbol barClass; public void setUp() { fooClass = new ClassSymbol("Foo"); fooClass2 = new ClassSymbol("Foo"); barClass = new ClassSymbol("Bar"); } public void testEquals() { assertEquals(true, fooClass.equals(fooClass2)); assertEquals(false, fooClass.equals(barClass)); assertEquals(false, barClass.equals(fooClass)); assertEquals(false, barClass.equals("Bar")); } public void testHashCode() { assertEquals(fooClass.hashCode(), fooClass2.hashCode()); } } --- NEW FILE: TC_Location.java --- package org.rubypeople.rdt.internal.core.symbols; import junit.framework.TestCase; import org.eclipse.core.runtime.Path; public class TC_Location extends TestCase { public void testForSource() { Location location = new Location(new Path("foo"), 1, 2); assertEquals(true, location.forSource(new Path("foo"))); assertEquals(false, location.forSource(new Path("Foo"))); } } --- NEW FILE: TC_SymbolIndex.java --- package org.rubypeople.rdt.internal.core.symbols; import java.util.Collections; import java.util.HashSet; import java.util.Set; import junit.framework.TestCase; import org.eclipse.core.runtime.Path; public class TC_SymbolIndex extends TestCase { private static final ClassSymbol UNKNOWN_SYMBOL = new ClassSymbol("unknown"); private static final ClassSymbol FOO_CLASS_SYMBOL = new ClassSymbol("Foo"); private static final Path FOO_PATH = new Path("/foo.rb"); private static final Path OTHER_FOO_PATH = new Path("/utils/foo.rb"); private static final Location FOO_CLASS_LOCATION = new Location(FOO_PATH, 12, 15); private static final Location OTHER_FOO_CLASS_LOCATION = new Location(OTHER_FOO_PATH, 10, 13); private static final Set EMPTY_SET= Collections.EMPTY_SET; private SymbolIndex index; public void setUp() { index = new SymbolIndex(); index.add(FOO_CLASS_SYMBOL, FOO_CLASS_LOCATION); } public void testSimple() { assertEquals(createSet(FOO_CLASS_LOCATION), index.find(FOO_CLASS_SYMBOL)); } public void testNotFound() { assertEquals(EMPTY_SET, index.find(UNKNOWN_SYMBOL)); } public void testFlush() { index.flush(FOO_PATH); assertEquals(EMPTY_SET, index.find(FOO_CLASS_SYMBOL)); } public void testMultipleLocations() { index.add(FOO_CLASS_SYMBOL, OTHER_FOO_CLASS_LOCATION); assertEquals(createSet(OTHER_FOO_CLASS_LOCATION, FOO_CLASS_LOCATION), index.find(FOO_CLASS_SYMBOL)); } private Set createSet(Object obj1) { Set set = new HashSet(); set.add(obj1); return set; } private Set createSet(Object obj1, Object obj2) { Set set = createSet(obj1); set.add(obj2); return set; } } --- NEW FILE: TS_CoreSymbols.java --- package org.rubypeople.rdt.internal.core.symbols; import junit.framework.Test; import junit.framework.TestSuite; public class TS_CoreSymbols extends TestSuite { public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(TC_ClassSymbol.class); suite.addTestSuite(TC_Location.class); suite.addTestSuite(TC_SymbolIndex.class); return suite; } } |