Loading plugins/org.etsi.mts.tdl.execution.java.codegen/src/org/etsi/mts/tdl/execution/java/codegen/JUnitTestGenerator.java +56 −0 Original line number Diff line number Diff line Loading @@ -384,10 +384,12 @@ public class JUnitTestGenerator extends Renderer { final List<IOException> ex = new ArrayList<IOException>(); List<ComponentInstance> testers = td.getTestConfiguration().getComponentInstance().stream() .filter(c -> c.getRole() == ComponentInstanceRole.TESTER).collect(Collectors.toList()); Set<String> testerClasses = new HashSet<String>(); testers.forEach(tester -> { String className = getElementName(td); if (testers.size() > 1) className += "_" + getElementName(tester); testerClasses.add(className); try { this.currentTester = tester; String fClassName = className; Loading @@ -398,11 +400,58 @@ public class JUnitTestGenerator extends Renderer { return; } }); if (testerClasses.size() > 1) { String className = getElementName(td); try { writeClassFile(packageName, className, () -> renderTestExecutionClass(fPackageName, className, td, testerClasses)); } catch (IOException e) { ex.add(e); return; } } if (!ex.isEmpty()) throw ex.get(0); } private void renderTestExecutionClass(String packageName, String className, TestDescription td, Set<String> testerClasses) { String tdName = getElementName(td); line("package " + packageName + ";"); newLine(); Set<String> imports = new HashSet<String>(); gatherImports(imports); writeImports(imports); append("public class " + className); blockOpen(); newLine(); line("@Test"); append("public void test_" + tdName + "()"); blockOpen(); for (String tClass : testerClasses) line(tClass + " a" + tClass + " = new " + tClass + "();"); newLine(); for (String tClass : testerClasses) line("a" + tClass + ".configure_" + tdName + "();"); newLine(); line("ComponentExecutor executor = new ComponentExecutor();"); for (String tClass : testerClasses) line("executor.addTest(a" + tClass + ".getTestControl(), () -> a" + tClass + ".test_" + tdName + "());"); blockClose(); newLine(); blockClose(); } private void renderTestDescriptionClass(String packageName, String className, TestDescription td, ComponentInstance tester) { Loading @@ -423,6 +472,13 @@ public class JUnitTestGenerator extends Renderer { // Component instance String componentClassName = classNames.get(tester.getType()); line("private " + componentClassName + " " + COMPONENT_FIELD + ";"); newLine(); append("public " + TESTER_CLASS + " getTestControl()"); blockOpen(); line("return " + COMPONENT_FIELD + ";"); blockClose(); // Declare TimeLabels td.eAllContents().forEachRemaining(e -> { Loading Loading
plugins/org.etsi.mts.tdl.execution.java.codegen/src/org/etsi/mts/tdl/execution/java/codegen/JUnitTestGenerator.java +56 −0 Original line number Diff line number Diff line Loading @@ -384,10 +384,12 @@ public class JUnitTestGenerator extends Renderer { final List<IOException> ex = new ArrayList<IOException>(); List<ComponentInstance> testers = td.getTestConfiguration().getComponentInstance().stream() .filter(c -> c.getRole() == ComponentInstanceRole.TESTER).collect(Collectors.toList()); Set<String> testerClasses = new HashSet<String>(); testers.forEach(tester -> { String className = getElementName(td); if (testers.size() > 1) className += "_" + getElementName(tester); testerClasses.add(className); try { this.currentTester = tester; String fClassName = className; Loading @@ -398,11 +400,58 @@ public class JUnitTestGenerator extends Renderer { return; } }); if (testerClasses.size() > 1) { String className = getElementName(td); try { writeClassFile(packageName, className, () -> renderTestExecutionClass(fPackageName, className, td, testerClasses)); } catch (IOException e) { ex.add(e); return; } } if (!ex.isEmpty()) throw ex.get(0); } private void renderTestExecutionClass(String packageName, String className, TestDescription td, Set<String> testerClasses) { String tdName = getElementName(td); line("package " + packageName + ";"); newLine(); Set<String> imports = new HashSet<String>(); gatherImports(imports); writeImports(imports); append("public class " + className); blockOpen(); newLine(); line("@Test"); append("public void test_" + tdName + "()"); blockOpen(); for (String tClass : testerClasses) line(tClass + " a" + tClass + " = new " + tClass + "();"); newLine(); for (String tClass : testerClasses) line("a" + tClass + ".configure_" + tdName + "();"); newLine(); line("ComponentExecutor executor = new ComponentExecutor();"); for (String tClass : testerClasses) line("executor.addTest(a" + tClass + ".getTestControl(), () -> a" + tClass + ".test_" + tdName + "());"); blockClose(); newLine(); blockClose(); } private void renderTestDescriptionClass(String packageName, String className, TestDescription td, ComponentInstance tester) { Loading @@ -423,6 +472,13 @@ public class JUnitTestGenerator extends Renderer { // Component instance String componentClassName = classNames.get(tester.getType()); line("private " + componentClassName + " " + COMPONENT_FIELD + ";"); newLine(); append("public " + TESTER_CLASS + " getTestControl()"); blockOpen(); line("return " + COMPONENT_FIELD + ";"); blockClose(); // Declare TimeLabels td.eAllContents().forEachRemaining(e -> { Loading