package org.eclipse.emf.mwe.core.ant; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import org.eclipse.ant.core.AntRunner; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; /** * Test for {@link WorkflowAntTask}. * * @author kthoms * http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ant/core/package-summary.html */ public class NotReallyAbstractWorkflowAntTaskTest extends Assert{ /** * FIXME * When adding more then one <tt>param</tt> tag the WorkflowAntTasks will fail with a Usage description. See * https://bugs.eclipse.org/bugs/show_bug.cgi?id=212994 */ @Test @Ignore public void testBug212994() throws Exception { AntRunner runner = new AntRunner(); String resourceClassPath = "test/res/build.xml"; File f = createTempFileFromClasspathResource(resourceClassPath); // Set up the Ant project with test workflow and use of WorkflowAntTask runner.setBuildFileLocation(f.getAbsolutePath()); // WorkflowRunner will fail with System.exit if something would be wrong. // This would lead to failing unit test with stacktrace: // Caused by: .../org.eclipse.emf.mwe.tests/resources/test/res/build.xml:5: Java returned: 1 // at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108) // at org.eclipse.emf.mwe.core.ant.WorkflowAntTask.execute(WorkflowAntTask.java:71) runner.run(); f.delete(); } private File createTempFileFromClasspathResource(String resourceClassPath) throws IOException { InputStream istr = getClass().getClassLoader().getResourceAsStream(resourceClassPath); File f = File.createTempFile(getClass().getSimpleName(), null); FileWriter fileWriter = new FileWriter(f); try { int i = istr.read(); while (i != -1) { fileWriter.write(i); i = istr.read(); } } finally { fileWriter.close(); istr.close(); } return f; } }