Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21767/src/org/rubypeople/rdt/internal/core Modified Files: ShamMassIndexUpdater.java TC_SymbolIndexResourceEventListener.java ShamResourceChangeEvent.java Log Message: Flush a project symbols from the SymbolIndex when closed or deleted. Index: ShamResourceChangeEvent.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/ShamResourceChangeEvent.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ShamResourceChangeEvent.java 19 Oct 2005 00:33:05 -0000 1.1 --- ShamResourceChangeEvent.java 20 Nov 2005 13:15:48 -0000 1.2 *************** *** 15,27 **** --- 15,43 ---- import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceDelta; + import org.rubypeople.eclipse.shams.resources.ShamProject; public class ShamResourceChangeEvent implements IResourceChangeEvent { + public static ShamResourceChangeEvent forClose(ShamProject project) { + return new ShamResourceChangeEvent(PRE_CLOSE, project); + } + + public static ShamResourceChangeEvent forDelete(ShamProject project) { + return new ShamResourceChangeEvent(PRE_DELETE, project); + } private final int type; private final IResourceDelta delta; + private final IResource resource; public ShamResourceChangeEvent(int type, IResourceDelta delta) { this.type = type; this.delta = delta; + this.resource = null; + } + + public ShamResourceChangeEvent(int type, IResource resource) { + this.type = type; + this.resource = resource; + this.delta = null; } *************** *** 39,43 **** public IResource getResource() { ! return null; } --- 55,59 ---- public IResource getResource() { ! return resource; } *************** *** 51,53 **** --- 67,71 ---- + + } Index: TC_SymbolIndexResourceEventListener.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/TC_SymbolIndexResourceEventListener.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TC_SymbolIndexResourceEventListener.java 13 Nov 2005 15:47:03 -0000 1.5 --- TC_SymbolIndexResourceEventListener.java 20 Nov 2005 13:15:48 -0000 1.6 *************** *** 23,26 **** --- 23,27 ---- import org.rubypeople.eclipse.shams.resources.ShamResource; import org.rubypeople.rdt.internal.core.builder.MassIndexUpdaterJob; + import org.rubypeople.rdt.internal.core.builder.ShamSymbolIndex; import org.rubypeople.rdt.internal.core.util.ListUtil; import org.rubypeople.rdt.internal.core.util.ShamJobScheduler; *************** *** 33,41 **** private ShamResource resource; private ShamJobScheduler jobScheduler; public void setUp() { jobScheduler = new ShamJobScheduler(); massIndexUpdater = new ShamMassIndexUpdater(); ! listener = new SymbolIndexResourceChangeListener(massIndexUpdater, jobScheduler); project = new ShamProject("test1"); resource = new ShamResource(new Path("test1/file1")); --- 34,45 ---- private ShamResource resource; private ShamJobScheduler jobScheduler; + private ShamSymbolIndex symbolIndex; public void setUp() { jobScheduler = new ShamJobScheduler(); massIndexUpdater = new ShamMassIndexUpdater(); ! symbolIndex = new ShamSymbolIndex(); ! listener = new SymbolIndexResourceChangeListener(massIndexUpdater, ! symbolIndex, jobScheduler); project = new ShamProject("test1"); resource = new ShamResource(new Path("test1/file1")); *************** *** 90,93 **** --- 94,115 ---- massIndexUpdater.assertUpdateProjectsNotCalled(); } + + public void testClose() { + ShamResourceChangeEvent event = + ShamResourceChangeEvent.forClose(project); + + listener.resourceChanged(event); + + symbolIndex.assertFlushed(project); + } + + public void testDeleteProject() { + ShamResourceChangeEvent event = + ShamResourceChangeEvent.forDelete(project); + + listener.resourceChanged(event); + + symbolIndex.assertFlushed(project); + } public void testNotADeltaChange() throws Exception { Index: ShamMassIndexUpdater.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/ShamMassIndexUpdater.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ShamMassIndexUpdater.java 20 Nov 2005 02:23:14 -0000 1.3 --- ShamMassIndexUpdater.java 20 Nov 2005 13:15:48 -0000 1.4 *************** *** 17,21 **** --- 17,24 ---- import junit.framework.Assert; + import org.eclipse.core.resources.IProject; + import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IProgressMonitor; + import org.rubypeople.eclipse.shams.resources.ShamProject; import org.rubypeople.rdt.internal.core.builder.MassIndexUpdater; *************** *** 24,27 **** --- 27,31 ---- private Collection projectsArg; private IProgressMonitor monitorArg; + private IResource projectArg; public ShamMassIndexUpdater() { *************** *** 39,42 **** --- 43,50 ---- } + public void flush(IProject project) { + projectArg = project; + } + public void assertUpdateProjectsNotCalled() { Assert.assertNull("Unexpected call to updateProjects", projectsArg); *************** *** 46,49 **** --- 54,62 ---- return this == obj; } + + public void assertFlushed(ShamProject project) { + Assert.assertEquals("Flushed project", project, projectArg); + } + |