[unrelated] Add copyFiles for testing
diff --git a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/JUnitPluginFileSystem.java b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/JUnitPluginFileSystem.java
index eee0865..29bf974 100644
--- a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/JUnitPluginFileSystem.java
+++ b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/JUnitPluginFileSystem.java
@@ -31,7 +31,9 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.common.util.WrappedException;
+import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.URIConverter;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.ocl.pivot.internal.resource.ProjectMap;
@@ -156,6 +158,31 @@
return getOutputFile(lastSegment, inputStream);
}
+ @Override
+ public @NonNull TestFile copyFiles(@NonNull ProjectManager projectManager, @Nullable TestFolder testFolder, @NonNull URI sourceFolderURI, @NonNull String @NonNull ... fileNames) throws IOException {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ projectManager.initializeResourceSet(resourceSet);
+ URIConverter uriConverter = resourceSet.getURIConverter();
+ JUnitPluginTestFile firstOutputFile = null;
+ for (@NonNull String fileName : fileNames) {
+ URI sourceURI = sourceFolderURI.appendSegment(fileName);
+ InputStream inputStream = uriConverter.createInputStream(sourceURI);
+ String lastSegment = sourceURI.lastSegment();
+ if (testFolder != null) {
+ IContainer iContainer = testFolder.getIContainer();
+ IPath projectRelativePath = iContainer.getFile(new Path(lastSegment)).getProjectRelativePath();
+ lastSegment = projectRelativePath.toString();
+ }
+ assert lastSegment != null;
+ JUnitPluginTestFile outputFile = getOutputFile(lastSegment, inputStream);
+ if (firstOutputFile == null) {
+ firstOutputFile = outputFile;
+ }
+ }
+ assert firstOutputFile != null;
+ return firstOutputFile;
+ }
+
protected @NonNull JUnitPluginTestFile createFilePath(@NonNull String testFilePath, @Nullable InputStream inputStream) {
JUnitPluginTestFolder node = this;
@NonNull String[] testFileSegments = testFilePath.split("/");
diff --git a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/JUnitStandaloneFileSystem.java b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/JUnitStandaloneFileSystem.java
index af7da01..5765b6d 100644
--- a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/JUnitStandaloneFileSystem.java
+++ b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/JUnitStandaloneFileSystem.java
@@ -24,7 +24,9 @@
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IProject;
import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.URIConverter;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.ocl.pivot.resource.ProjectManager;
@@ -121,6 +123,29 @@
return getOutputFile(lastSegment, inputStream);
}
+ @Override
+ public @NonNull TestFile copyFiles(@NonNull ProjectManager projectManager, @Nullable TestFolder testFolder, @NonNull URI sourceFolderURI, @NonNull String @NonNull ... fileNames) throws IOException {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ projectManager.initializeResourceSet(resourceSet);
+ URIConverter uriConverter = resourceSet.getURIConverter();
+ JUnitStandaloneTestFile firstOutputFile = null;
+ for (@NonNull String fileName : fileNames) {
+ URI sourceURI = sourceFolderURI.appendSegment(fileName);
+ InputStream inputStream = uriConverter.createInputStream(sourceURI);
+ String lastSegment = sourceURI.lastSegment();
+ assert lastSegment != null;
+ if (testFolder != null) {
+ lastSegment = testFolder.getName() + "/" + lastSegment;
+ }
+ JUnitStandaloneTestFile outputFile = getOutputFile(lastSegment, inputStream);
+ if (firstOutputFile == null) {
+ firstOutputFile = outputFile;
+ }
+ }
+ assert firstOutputFile != null;
+ return firstOutputFile;
+ }
+
protected @NonNull JUnitStandaloneTestFile createFilePath(@NonNull String testFilePath) {
JUnitStandaloneTestFolder node = this;
@NonNull String[] testFileSegments = testFilePath.split("/");
diff --git a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/TestProject.java b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/TestProject.java
index fea26cf..a3f09b5 100644
--- a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/TestProject.java
+++ b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/xtext/tests/TestProject.java
@@ -26,6 +26,7 @@
public interface TestProject extends TestFolder
{
@NonNull TestFile copyFile(@NonNull URIConverter uriConverter, @Nullable TestFolder testFolder, @NonNull URI sourceURI) throws IOException;
+ @NonNull TestFile copyFiles(@NonNull ProjectManager projectManager, @Nullable TestFolder testFolder, @NonNull URI sourceFolderURI, @NonNull String @NonNull ... fileNames) throws IOException;
@NonNull ProjectManager createTestProjectManager();