|
From: David C. <dc...@us...> - 2005-11-12 19:16:01
|
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-serv25435/src/org/rubypeople/rdt/internal/core/symbols Modified Files: TC_SymbolIndex.java TC_Location.java Log Message: 1) refactored RubyBuilder again, this time with better unit tests. 2) refactored Location (and SymbolIndex) to be IFile based, rather than IPath based. 3) general improvement on maintainence of the SymbolIndex. Index: TC_Location.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/symbols/TC_Location.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TC_Location.java 13 Oct 2005 23:56:02 -0000 1.3 --- TC_Location.java 12 Nov 2005 19:15:53 -0000 1.4 *************** *** 1,12 **** /* ! ?* Author: David Corbin ! ?* ! ?* Copyright (c) 2005 RubyPeople. ! ?* ! ?* This file is part of the Ruby Development Tools (RDT) plugin for eclipse. * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use * RDT except in compliance with the License. For further information see * org.rubypeople.rdt/rdt.license. ! ?*/ package org.rubypeople.rdt.internal.core.symbols; --- 1,12 ---- /* ! * Author: David Corbin ! * ! * Copyright (c) 2005 RubyPeople. ! * ! * This file is part of the Ruby Development Tools (RDT) plugin for eclipse. * RDT is subject to the "Common Public License (CPL) v 1.0". You may not use * RDT except in compliance with the License. For further information see * org.rubypeople.rdt/rdt.license. ! */ package org.rubypeople.rdt.internal.core.symbols; *************** *** 14,25 **** import junit.framework.TestCase; ! import org.eclipse.core.runtime.Path; import org.rubypeople.rdt.internal.core.parser.RdtPosition; public class TC_Location extends TestCase { public void testForSource() { ! Location location = new Location(new Path("foo"), new RdtPosition(1, 2, 3)); ! assertEquals(true, location.forSource(new Path("foo"))); ! assertEquals(false, location.forSource(new Path("Foo"))); } } --- 14,26 ---- import junit.framework.TestCase; ! import org.rubypeople.eclipse.shams.resources.ShamFile; import org.rubypeople.rdt.internal.core.parser.RdtPosition; public class TC_Location extends TestCase { public void testForSource() { ! ShamFile fooFile = new ShamFile("foo"); ! Location location = new Location(fooFile, new RdtPosition(1, 2, 3)); ! assertEquals(true, location.forSource(fooFile)); ! assertEquals(false, location.forSource(new ShamFile("Foo"))); } } Index: TC_SymbolIndex.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/symbols/TC_SymbolIndex.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TC_SymbolIndex.java 23 Oct 2005 22:24:19 -0000 1.5 --- TC_SymbolIndex.java 12 Nov 2005 19:15:53 -0000 1.6 *************** *** 18,25 **** import junit.framework.TestCase; ! import org.eclipse.core.resources.IFile; ! import org.eclipse.core.runtime.Path; import org.jruby.lexer.yacc.ISourcePosition; import org.rubypeople.eclipse.shams.resources.ShamFile; import org.rubypeople.rdt.internal.core.parser.RdtPosition; --- 18,25 ---- import junit.framework.TestCase; ! import org.eclipse.core.resources.IProject; import org.jruby.lexer.yacc.ISourcePosition; import org.rubypeople.eclipse.shams.resources.ShamFile; + import org.rubypeople.eclipse.shams.resources.ShamProject; import org.rubypeople.rdt.internal.core.parser.RdtPosition; *************** *** 28,41 **** private static final ClassSymbol FOO_CLASS_SYMBOL = new ClassSymbol("Foo"); private static final ClassSymbol OTHER_FOO_CLASS_SYMBOL = new ClassSymbol("Foo2"); ! 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 ISourcePosition FOO_POSITION = new RdtPosition(10, 3, 7); private static final ISourcePosition OTHER_FOO_POSITION = new RdtPosition(12, 13, 17); ! private static final Location FOO_CLASS_LOCATION = new Location(FOO_PATH, FOO_POSITION); ! private static final Location OTHER_FOO_CLASS_LOCATION = new Location(OTHER_FOO_PATH, OTHER_FOO_POSITION); ! private static final IFile OTHER_FOO_FILE = new ShamFile(OTHER_FOO_PATH); private static final Set EMPTY_SET = Collections.EMPTY_SET; private SymbolIndex index; --- 28,48 ---- private static final ClassSymbol FOO_CLASS_SYMBOL = new ClassSymbol("Foo"); private static final ClassSymbol OTHER_FOO_CLASS_SYMBOL = new ClassSymbol("Foo2"); ! private static final IProject PROJECT1 = new ShamProject("project1"); ! private static final ShamFile FOO_FILE = new ShamFile("/project1/foo.rb"); ! private static final ShamFile FOO_FILE2 = new ShamFile("/project1/foo.rb"); ! private static final ShamFile OTHER_FOO_FILE = new ShamFile("/project1/utils/foo.rb"); ! private static final ShamFile PROJECT2_FILE = new ShamFile("/project2/bar.rb"); private static final ISourcePosition FOO_POSITION = new RdtPosition(10, 3, 7); private static final ISourcePosition OTHER_FOO_POSITION = new RdtPosition(12, 13, 17); ! private static final Location FOO_CLASS_LOCATION = new Location(FOO_FILE, FOO_POSITION); ! private static final Location OTHER_FOO_CLASS_LOCATION = new Location(OTHER_FOO_FILE, OTHER_FOO_POSITION); ! private static final Location PROJECT2_CLASS_LOCATION = new Location(PROJECT2_FILE, OTHER_FOO_POSITION); private static final Set EMPTY_SET = Collections.EMPTY_SET; + static { + FOO_FILE.setProject(PROJECT1); + } + private SymbolIndex index; *************** *** 55,61 **** public void testFlush() { index.add(FOO_CLASS_SYMBOL, OTHER_FOO_CLASS_LOCATION); ! index.flush(FOO_PATH); assertEquals(createSet(OTHER_FOO_CLASS_LOCATION), index.find(FOO_CLASS_SYMBOL)); ! index.flush(OTHER_FOO_PATH); assertEquals(EMPTY_SET, index.find(FOO_CLASS_SYMBOL)); } --- 62,76 ---- public void testFlush() { index.add(FOO_CLASS_SYMBOL, OTHER_FOO_CLASS_LOCATION); ! index.flush(FOO_FILE); assertEquals(createSet(OTHER_FOO_CLASS_LOCATION), index.find(FOO_CLASS_SYMBOL)); ! index.flush(OTHER_FOO_FILE); ! assertEquals(EMPTY_SET, index.find(FOO_CLASS_SYMBOL)); ! } ! ! public void testFlushUsesEquals() { ! index.add(FOO_CLASS_SYMBOL, OTHER_FOO_CLASS_LOCATION); ! index.flush(FOO_FILE2); ! assertEquals(createSet(OTHER_FOO_CLASS_LOCATION), index.find(FOO_CLASS_SYMBOL)); ! index.flush(OTHER_FOO_FILE); assertEquals(EMPTY_SET, index.find(FOO_CLASS_SYMBOL)); } *************** *** 100,103 **** --- 115,127 ---- } + public void testFlushByProject() { + index.add(FOO_CLASS_SYMBOL, FOO_CLASS_LOCATION); + ClassSymbol barClassSymbol = new ClassSymbol("Bar"); + index.add(barClassSymbol, PROJECT2_CLASS_LOCATION); + index.flush(PROJECT1); + assertEquals(EMPTY_SET, index.find(FOO_CLASS_SYMBOL)); + assertEquals(createSet(PROJECT2_CLASS_LOCATION), index.find(barClassSymbol)); + } + private Set createSet(Object obj1) { Set set = new HashSet(); |