/**
* Copyright (c) 2010, 2012 Darmstadt University of Technology.
* 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:
* Marcel Bruch - initial API and implementation.
*/
package org.eclipse.recommenders.internal.rcp;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.JavaRuntime;
import org.eclipse.jdt.launching.LibraryLocation;
import org.eclipse.recommenders.testing.jdt.JavaProjectFixture;
import org.eclipse.recommenders.utils.Pair;
import org.junit.BeforeClass;
import org.junit.Test;
import com.google.common.eventbus.EventBus;
public class JavaModelEventsProviderTest {
static IWorkspace workspace = ResourcesPlugin.getWorkspace();
private static JavaModelEventsService sut;
@BeforeClass
public static void beforeClass() {
sut = new JavaModelEventsService(new EventBus(), workspace.getRoot());
JavaCore.addElementChangedListener(sut);
}
@Test
public void test() throws CoreException {
JavaProjectFixture f = new JavaProjectFixture(workspace, "model-events");
IJavaProject project = f.getJavaProject();
project.close();
project.open(null);
Pair<ICompilationUnit, List<Integer>> m = f.createFileAndParseWithMarkers("public class C {}");
ICompilationUnit cu = m.getFirst();
cu.getBuffer().append("// COMMENT");
cu.save(null, true);
cu.delete(true, null);
List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
IVMInstall vmInstall = JavaRuntime.getDefaultVMInstall();
LibraryLocation[] locations = JavaRuntime.getLibraryLocations(vmInstall);
for (LibraryLocation element : locations) {
entries.add(JavaCore.newLibraryEntry(element.getSystemLibraryPath(), null, null));
}
// IFolder sourceFolder = project.getFolder("src");
// sourceFolder.create(false, true, null);
// add libs to project class path
project.setRawClasspath(entries.toArray(new IClasspathEntry[entries.size()]), null);
project.close();
}
}