diff options
Diffstat (limited to 'org.eclipse.emf.refactor.refactoring.henshin/templates/RefactoringTestHenshin.javajet')
-rw-r--r-- | org.eclipse.emf.refactor.refactoring.henshin/templates/RefactoringTestHenshin.javajet | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/org.eclipse.emf.refactor.refactoring.henshin/templates/RefactoringTestHenshin.javajet b/org.eclipse.emf.refactor.refactoring.henshin/templates/RefactoringTestHenshin.javajet new file mode 100644 index 0000000..4760b15 --- /dev/null +++ b/org.eclipse.emf.refactor.refactoring.henshin/templates/RefactoringTestHenshin.javajet @@ -0,0 +1,106 @@ +<%@ jet package="org.eclipse.emf.refactor" class="RefactoringTest" +imports="org.eclipse.emf.refactor.generator.*"%> +<%RefactoringConfig refactoringConfig = (RefactoringConfig) argument; %> +/** + * <copyright> + * </copyright> + * + * $Id: RefactoringTestHenshin.javajet,v 1.1 2012/11/26 11:49:12 tarendt Exp $ + */ + +package <%=refactoringConfig.getPackageName()%>; + +import java.io.File; +import java.io.FilenameFilter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.eclipse.emf.henshin.model.HenshinPackage; +import org.eclipse.emf.refactor.common.core.EmfRefactoring; +import <%=refactoringConfig.getPackageName()%>.RefactoringController; +import <%=refactoringConfig.getPackageName()%>.RefactoringGuiHandler; +import org.eclipse.emf.refactor.runtime.test.JUnitTestCaseAdapter; +import <%=refactoringConfig.getSelectedEObjectJar()%>.<%=refactoringConfig.getMetaModelName()%>Package; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +/** + * Class used for running individual JUnit test cases + * of the specific model refactoring. + * @generated + */ +@RunWith(value = Parameterized.class) +public class RefactoringTest extends JUnitTestCaseAdapter { + + /** + * Number of test cases. + * @generated + */ + private String number; + + /** + * Constructor implementation. + * @param number Number of test cases. + * @generated + */ + public RefactoringTest(String number) throws IOException { + super("<%=refactoringConfig.getRefactoringId()%>", + "<%=refactoringConfig.getNamespacePrefix()%>", + new File(".").getCanonicalPath(), + new EmfRefactoring(null, "", "<%=refactoringConfig.getNamespaceUri()%>", new RefactoringGuiHandler(), new RefactoringController())); + register(<%=refactoringConfig.getMetaModelName()%>Package.eINSTANCE); + register(HenshinPackage.eINSTANCE); + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put("henshin", new XMIResourceFactoryImpl()); + this.number = number; + } + + @Parameters + public static Collection<Object[]> data() { + List<String> testNumbers = getTestNumbers(); + Object[][] data = new Object[testNumbers.size()][1]; + for (int i = 0; i < testNumbers.size(); i++) { + data[i][0] = testNumbers.get(i); + } + return Arrays.asList(data); + } + + private static List<String> getTestNumbers() { + List<String> numbers = new ArrayList<String>(); + try { + String pathPrefix = new File(".").getCanonicalPath() + "/tests/" + "<%=refactoringConfig.getRefactoringId()%>"; + File testCaseDir = new File(pathPrefix,"/"); + FilenameFilter filter = new FilenameFilter() { + public boolean accept(File dir, String name) { + return name.startsWith("test_"); + } + }; + String[] children = testCaseDir.list(filter); + if (children != null) { + for (String child : children) { + numbers.add( + child.substring( + child.indexOf('_') + 1)); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + return numbers; + } + + /** + * Runs the test. + */ + @Test + public void test(){ + System.out.println("running test test_" + number); + executeTestCase(number); + } +}
\ No newline at end of file |