package com.sap.furcas.test.testutils;
import java.io.File;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import junit.framework.Assert;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import com.sap.furcas.metamodel.FURCAS.FURCASPackage;
public class ResourceTestHelper {
public static Set<URI> createEcoreReferenceScope() {
Set<URI> referenceScope = new HashSet<URI>();
referenceScope.add(URI.createURI(EcorePackage.eINSTANCE.getNsURI()));
return referenceScope;
}
public static ResourceSet createResourceSet() {
ResourceSet resourceSet = new ResourceSetImpl();
return resourceSet;
}
public static Set<URI> createFURCASReferenceScope() {
Set<URI> referenceScope = new HashSet<URI>();
referenceScope.add(URI.createURI(FURCASPackage.eINSTANCE.getNsURI()));
return referenceScope;
}
public static Resource createTransientResource(ResourceSet resourceSet) {
File tempFile = null;
try {
tempFile = File.createTempFile("temporaryTestResource", "xmi");
tempFile.deleteOnExit();
} catch (IOException e) {
e.printStackTrace();
Assert.fail("Unable to create transient resource");
}
Resource resource = resourceSet.createResource(URI.createFileURI(tempFile.getAbsolutePath()));
// This is a documented hack to consider an empty resource being loaded. See {@link Resource#isLoaded()}
resource.getContents().clear();
return resource;
}
}