| /******************************************************************************* |
| * Copyright (c) 2000, 2017 IBM Corporation and others. |
| * 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: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.core.tests.resources.regression; |
| |
| import junit.framework.Test; |
| import junit.framework.TestSuite; |
| import org.eclipse.core.resources.*; |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.SubMonitor; |
| import org.eclipse.core.tests.resources.ResourceDeltaVerifier; |
| import org.eclipse.core.tests.resources.ResourceTest; |
| |
| public class PR_1GEAB3C_Test extends ResourceTest { |
| ResourceDeltaVerifier verifier; |
| |
| protected static final String VERIFIER_NAME = "TestListener"; |
| |
| public PR_1GEAB3C_Test() { |
| super(); |
| } |
| |
| public PR_1GEAB3C_Test(String name) { |
| super(name); |
| } |
| |
| public void assertDelta() { |
| assertTrue(verifier.getMessage(), verifier.isDeltaValid()); |
| } |
| |
| /** |
| * Runs code to handle a core exception |
| */ |
| protected void handleCoreException(CoreException e) { |
| assertTrue("CoreException: " + e.getMessage(), false); |
| } |
| |
| /** |
| * Sets up the fixture, for example, open a network connection. |
| * This method is called before a test is executed. |
| */ |
| @Override |
| protected void setUp() throws Exception { |
| super.setUp(); |
| //ensure background work is done before adding verifier |
| waitForBuild(); |
| waitForRefresh(); |
| verifier = new ResourceDeltaVerifier(); |
| getWorkspace().addResourceChangeListener(verifier); |
| } |
| |
| public static Test suite() { |
| return new TestSuite(PR_1GEAB3C_Test.class); |
| } |
| |
| /** |
| * Tears down the fixture, for example, close a network connection. |
| * This method is called after a test is executed. |
| */ |
| @Override |
| protected void tearDown() throws Exception { |
| super.tearDown(); |
| ensureDoesNotExistInWorkspace(getWorkspace().getRoot()); |
| getWorkspace().removeResourceChangeListener(verifier); |
| } |
| |
| /* |
| * Ensure that we get ADDED and OPEN in the delta when we create and open |
| * a project in a workspace runnable. |
| */ |
| public void test_1GEAB3C() { |
| verifier.reset(); |
| final IProject project = getWorkspace().getRoot().getProject("MyAddedAndOpenedProject"); |
| verifier.addExpectedChange(project, IResourceDelta.ADDED, IResourceDelta.OPEN); |
| verifier.addExpectedChange(project.getFile(IProjectDescription.DESCRIPTION_FILE_NAME), IResourceDelta.ADDED, 0); |
| IWorkspaceRunnable body = monitor -> { |
| monitor.beginTask("Creating and deleting", 100); |
| try { |
| project.create(SubMonitor.convert(monitor, 50)); |
| project.open(SubMonitor.convert(monitor, 50)); |
| } finally { |
| monitor.done(); |
| } |
| }; |
| try { |
| getWorkspace().run(body, getMonitor()); |
| } catch (CoreException e) { |
| fail("1.1", e); |
| } |
| assertDelta(); |
| } |
| } |