package com.yoursway.databinding.resources.tests.shallow;
import java.io.IOException;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.junit.Ignore;
import org.junit.Test;
import com.yoursway.tests.commons.ProjectTests;
import com.yoursway.tests.commons.StateSync;
public final class RapeThePlatform extends ProjectTests {
@Ignore
@Test
public void hardcore() throws CoreException {
final StateSync<Integer> sync = new StateSync<Integer>(0);
IResourceChangeListener R = new IResourceChangeListener() {
public void resourceChanged(IResourceChangeEvent event) {
sync.setState(3);
System.out.println("resourceChanged, waiting...");
sync.waitState(1);
System.out.println("resourceChanged done.");
}
};
ResourcesPlugin.getWorkspace().addResourceChangeListener(R);
final IProject P = ResourcesPlugin.getWorkspace().getRoot().getProject("fooooo");
Thread thread = new Thread(new Runnable() {
public void run() {
try {
System.out.println("Creating project " + P);
create(P);
sync.setState(2);
} catch (CoreException e) {
e.printStackTrace();
}
}
});
thread.start();
IProject X = ResourcesPlugin.getWorkspace().getRoot().getProject("baaaaaar");
sync.waitState(3);
System.out.println("Creating project " + X);
try {
P.getFile("xxx").getLocation().toFile().createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
// P.refreshLocal(IResource.DEPTH_INFINITE, null);
System.out.println("Setting state 1");
sync.setState(1);
System.out.println("Waiting for state 2");
sync.waitState(2);
System.out.println("Done test.");
}
}