blob: 6ea13dfef00022a304f814377bb289cf0444b592 [file] [log] [blame]
/*******************************************************************************
* 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();
}
}