diff --git a/rules/src/test/java/org/jboss/windup/rules/tests/RuleTest.java b/rules/src/test/java/org/jboss/windup/rules/tests/RuleTest.java index 47fb7c5af..6e8790f8c 100644 --- a/rules/src/test/java/org/jboss/windup/rules/tests/RuleTest.java +++ b/rules/src/test/java/org/jboss/windup/rules/tests/RuleTest.java @@ -13,12 +13,27 @@ */ public class RuleTest { + private String id; private String testDataPath; private List rulePaths = new ArrayList<>(); private List ruleIds = new ArrayList<>(); private String source; private String target; + /** + * Gets the ruletest ID + */ + public String getId() { + return id; + } + + /** + * Sets the ruletest ID + */ + public void setId(String id) { + this.id = id; + } + /** * Gets the source technology to operate on (eg, Glassfish). */ diff --git a/rules/src/test/java/org/jboss/windup/rules/tests/RuleTestHandler.java b/rules/src/test/java/org/jboss/windup/rules/tests/RuleTestHandler.java index 1891845b6..1fec7d727 100644 --- a/rules/src/test/java/org/jboss/windup/rules/tests/RuleTestHandler.java +++ b/rules/src/test/java/org/jboss/windup/rules/tests/RuleTestHandler.java @@ -51,6 +51,7 @@ public class RuleTestHandler implements ElementHandler { public static final String RULETEST = "ruletest"; + public static final String RULETEST_ID = "id"; public static final String TEST_DATA_PATH = "testDataPath"; public static final String RULE_PATH = "rulePath"; public static final String SOURCE_MODE = "sourceMode"; @@ -62,6 +63,7 @@ public class RuleTestHandler implements ElementHandler public RuleTest processElement(ParserContext context, Element element) throws ConfigurationException { RuleTest ruleTest = new RuleTest(); + ruleTest.setId($(element).attr(RULETEST_ID)); List children = $(element).children().get(); for (Element child : children) diff --git a/rules/src/test/java/org/jboss/windup/rules/tests/WindupRulesTest.java b/rules/src/test/java/org/jboss/windup/rules/tests/WindupRulesTest.java index 126543369..a2b5e44a5 100644 --- a/rules/src/test/java/org/jboss/windup/rules/tests/WindupRulesTest.java +++ b/rules/src/test/java/org/jboss/windup/rules/tests/WindupRulesTest.java @@ -187,11 +187,11 @@ public void visit(File ruleTestFile) try { Map exceptions; - Path outputPath = getDefaultPath(); + // load the ruletest file + final RuleTest ruleTest = parser.processDocument(ruleTestFile.toURI()); + Path outputPath = getDefaultPath(ruleTest.getId()); try (GraphContext context = factory.create(outputPath, true)) { - // load the ruletest file - RuleTest ruleTest = parser.processDocument(ruleTestFile.toURI()); List rulePaths = new ArrayList<>(); if (ruleTest.getRulePaths().isEmpty()) { @@ -316,9 +316,9 @@ private DefaultEvaluationContext createEvalContext(GraphRewrite event) return evaluationContext; } - private Path getDefaultPath() + private Path getDefaultPath(String rulesetId) { - return FileUtils.getTempDirectory().toPath().resolve("WindupRulesTests").resolve("windupgraph_" + RandomStringUtils.randomAlphanumeric(6)); + return FileUtils.getTempDirectory().toPath().resolve("WindupRulesTests").resolve("windupgraph_" + rulesetId + "_" + RandomStringUtils.randomAlphanumeric(6)); } private void runWindup(GraphContext context, File baseRuleDirectory, final List rulePaths, File input, File output, boolean sourceMode, String source, String target) throws IOException