/* * Copyright 2016 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.red.junit; import java.net.URI; import java.util.ArrayList; import java.util.List; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.junit.rules.TestRule; import org.junit.runner.Description; import org.junit.runners.model.Statement; public class ResourceCreator implements TestRule { private final List<IResource> createdResources = new ArrayList<>(); public void createLink(final URI targetUri, final IFile linkingFile) throws CoreException { linkingFile.createLink(targetUri, IResource.REPLACE, null); createdResources.add(linkingFile); } public void createLink(final URI targetUri, final IFolder linkingFolder) throws CoreException { linkingFolder.createLink(targetUri, IResource.REPLACE, null); createdResources.add(linkingFolder); } @Override public Statement apply(final Statement base, final Description description) { return new Statement() { @Override public void evaluate() throws Throwable { try { base.evaluate(); } finally { for (final IResource resource : createdResources) { resource.delete(true, null); } } } }; } }