29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/test_hook.rb', line 29
def compile_file_content(request)
"import java.util.*;\nimport java.util.function.*;\nimport java.util.stream.*;\nimport java.util.stream.Collectors.*;\nimport java.time.*;\nimport org.junit.runner.RunWith;\nimport org.junit.*;\nimport org.junit.runner.*;\nimport org.junit.runner.notification.*;\nimport org.junit.runners.*;\nimport org.junit.runners.model.InitializationError;\nimport org.apache.commons.text.StringEscapeUtils;\n\#{request.content}\n\#{request.extra}\n\npublic class SubmissionTest {\n\#{request.test}\npublic static void main(String[] args) {\n JUnitCore core = new JUnitCore();\n core.addListener(new MuListener());\n core.run(SubmissionTest.class);\n}\n}\nclass MuListener extends RunListener {\nprivate Map<String, Collection<String>> tests = new HashMap<>();\n@Override\npublic void testStarted(Description description) throws Exception {\n String methodName = description.getMethodName();\n tests.put(methodName, Arrays.asList(methodName, \"passed\"));\n}\n\n@Override\npublic void testFailure(Failure failure) {\n String methodName = failure.getDescription().getMethodName();\n tests.put(methodName, Arrays.asList(methodName, \"failed\", failure.getMessage()));\n}\n\n@Override\npublic void testRunFinished(Result r) {\n String result = prettyFormatResults(tests.values());\n System.out.println(StringEscapeUtils.unescapeJson(result));\n}\n\npublic String prettyFormatString(String string) {\n return (\"\\\\\\\"\"+string+\"\\\\\\\"\");\n}\npublic String prettyFormatExample(Collection<String> example) {\n return \"[\"+example.stream().map(element -> prettyFormatString(element)).collect(Collectors.joining(\",\")) +\"]\";\n}\npublic String prettyFormatResults(Collection<Collection<String>> results) {\n return \"[\"+results.stream().map(element -> prettyFormatExample(element)).collect(Collectors.joining(\",\"))+\"]\";\n}\n}\n"
end
|