/******************************************************************************* * Copyright (c) 2011 Manuel Doninger. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Manuel Doninger - initial API and implementation * Tasktop Technologies - improvements *******************************************************************************/ package org.eclipse.mylyn.resources.tests; import java.lang.reflect.InvocationTargetException; import java.util.Collections; import java.util.Set; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.mylyn.commons.sdk.util.TestProject; import org.eclipse.mylyn.context.core.ContextCore; import org.eclipse.mylyn.context.sdk.util.AbstractResourceContextTest; import org.eclipse.mylyn.context.sdk.util.ContextTestUtil; import org.eclipse.mylyn.internal.resources.ui.ResourcesUiBridgePlugin; import org.eclipse.mylyn.internal.resources.ui.ResourcesUiPreferenceInitializer; import org.eclipse.mylyn.resources.ui.ResourcesUi; /** * @author Manuel Doninger * @author Steffen Pingel */ public class ResourcesUiTest extends AbstractResourceContextTest { @Override protected void setUp() throws Exception { super.setUp(); // ResourcesUiBridgePlugin.getDefault().setResourceMonitoringEnabled(true); ResourcesUiBridgePlugin.getInterestUpdater().setSyncExec(true); ContextTestUtil.triggerContextUiLazyStart(); // disable ResourceModifiedDateExclusionStrategy ResourcesUiBridgePlugin.getDefault() .getPreferenceStore() .setValue(ResourcesUiPreferenceInitializer.PREF_MODIFIED_DATE_EXCLUSIONS, false); } public void testGetProjects() throws CoreException { Set<IProject> projects = ResourcesUi.getProjects(ContextCore.getContextManager().getActiveContext()); assertEquals(Collections.emptySet(), projects); IFile testfile1 = project.getProject().getFile("testfile1"); testfile1.create(null, true, null); IFile testfile2 = project.getProject().getFile("testfile2"); testfile2.create(null, true, null); projects = ResourcesUi.getProjects(ContextCore.getContextManager().getActiveContext()); assertEquals(Collections.singleton(project.getProject()), projects); } public void testGetProjectsInWithInvalidProject() throws CoreException, InvocationTargetException, InterruptedException { Set<IProject> projects = ResourcesUi.getProjects(ContextCore.getContextManager().getActiveContext()); assertEquals(Collections.emptySet(), projects); IFile testfile1 = project.getProject().getFile("testfile1"); testfile1.create(null, true, null); IFile testfile2 = project.getProject().getFile("testfile2"); testfile2.create(null, true, null); projects = ResourcesUi.getProjects(ContextCore.getContextManager().getActiveContext()); assertEquals(Collections.singleton(project.getProject()), projects); TestProject project2 = new TestProject(this.getClass().getName() + "Invalid"); IFile testfile3 = project2.getProject().getFile("testfile1"); testfile3.create(null, true, null); ContextCore.getContextManager().setContextCapturePaused(true); testfile3.delete(true, null); project2.getProject().delete(true, null); ContextCore.getContextManager().setContextCapturePaused(false); projects = ResourcesUi.getProjects(ContextCore.getContextManager().getActiveContext()); assertEquals(Collections.singleton(project.getProject()), projects); } }