package com.sap.runlet.abstractexpressionpad.views; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class JavaTestCaseBuilder { public static String buildTestCase(List<String> history) { StringBuilder sb = new StringBuilder(1024); sb.append(" public void test() throws Exception {\n"); sb.append(" ExecuteResult executeResult = main.execute(\n"); List<String> statements = new ArrayList<String>(history.size()); for (String stmnt : history) { if (!stmnt.startsWith("!")) { statements.add(stmnt); } } int countDown = statements.size(); Collections.reverse(statements); for (String stmnt : statements) { --countDown; // skip inspection commands sb.append(" \""); sb.append(stmnt.replace("\"", "\\\"")); sb.append('"'); if (!(countDown == 0)) { sb.append(",\n"); } } sb.append(");\n"); sb.append(" RunletObject<AssociationEnd, TypeDefinition, ClassTypeDefinition>[] result = executeResult.getResult();\n"); sb.append(" String[] errors = executeResult.getErrors();\n"); sb.append(" assertEquals(").append(statements.size()).append(", result.length);\n"); sb.append(" assertEquals(0, errors.length);\n"); sb.append(" }\n"); return sb.toString(); } }