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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# File 'lib/test_hook.rb', line 35
def compile_file_content(request)
test = <<EOF
import java.util.*;
import java.util.function.*;
import java.util.stream.*;
import java.util.stream.Collectors.*;
import java.time.*;
import org.junit.runner.RunWith;
import org.junit.*;
import org.junit.runner.*;
import org.junit.runner.notification.*;
import org.junit.runners.*;
import org.junit.runners.model.InitializationError;
import org.apache.commons.text.StringEscapeUtils;
#{has_files?(request) ? '' : request.content}
#{request.}
public class SubmissionTest {
#{request.test}
@AfterClass
public static void afterAll(){
System.out.println("!!!JAVA-MUMUKI-OUTPUT!!!");
}
public static void main(String[] args) {
JUnitCore core = new JUnitCore();
core.addListener(new MuListener());
core.run(SubmissionTest.class);
}
}
class MuListener extends RunListener {
private Map<String, Collection<String>> tests = new HashMap<>();
@Override
public void testStarted(Description description) throws Exception {
String methodName = description.getMethodName();
tests.put(methodName, Arrays.asList(methodName, "passed"));
}
@Override
public void testFailure(Failure failure) {
String methodName = failure.getDescription().getMethodName();
tests.put(methodName, Arrays.asList(methodName, "failed", failure.getMessage()));
}
@Override
public void testRunFinished(Result r) {
String result = prettyFormatResults(tests.values());
System.out.println(StringEscapeUtils.unescapeJson(result));
}
public String prettyFormatString(String string) {
return ("\\\""+string+"\\\"");
}
public String prettyFormatExample(Collection<String> example) {
return "["+example.stream().map(element -> prettyFormatString(element)).collect(Collectors.joining(",")) +"]";
}
public String prettyFormatResults(Collection<Collection<String>> results) {
return "["+results.stream().map(element -> prettyFormatExample(element)).collect(Collectors.joining(","))+"]";
}
}
EOF
has_files?(request) ?
files_of(request).merge('SubmissionTest.java' => test) :
test
end
|