package org.eclipse.orion.server.tests.servlets.files; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import org.eclipse.core.filesystem.IFileStore; import org.eclipse.orion.internal.server.servlets.ChangeEvent; import org.eclipse.orion.internal.server.servlets.IFileStoreModificationListener; import org.eclipse.orion.internal.server.servlets.file.FilesystemModificationListenerManager; public class TestFilesystemModificationListener implements IFileStoreModificationListener { final ArrayList<ChangeEvent> events = new ArrayList<ChangeEvent>(); public TestFilesystemModificationListener() { FilesystemModificationListenerManager.getInstance().addListener(this); } @Override public void changed(ChangeEvent event) { events.add(event); } public void clear() { events.clear(); } static void cleanup(TestFilesystemModificationListener l) { if (l == null) { return; } FilesystemModificationListenerManager.getInstance().removeListener(l); } public void assertListenerNotified(IFileStore modified, ChangeType type) { assertListenerNotified(null, modified, type); } public void assertListenerNotified(IFileStore initial, IFileStore modified, ChangeType type) { assertEquals(1, events.size()); ChangeEvent event = events.get(0); assertEquals(type, event.getChangeType()); assertEquals(initial, event.getInitialLocation()); assertEquals(modified, event.getModifiedItem()); } }