package org.psjava.judgesubmit;
import java.util.TreeSet;
import junit.framework.Assert;
import org.junit.Test;
public class JudgeSubmitTest {
@Test
public void testAcceptedCase() throws Exception {
String code = "public class Main { public static void main(String[] args) { java.util.Scanner in = new java.util.Scanner(System.in); while(true) { int x = in.nextInt(); if(x == 42) break; System.out.println(x); } } }";
JudgeHttpClient client = MockHttpClient.create(SPOJ.CONNECTION_DATA);
SubmitStatus r = JudgeSubmit.submitAngGetResult(client, new SPOJ(), "TEST", "ojh", "ojhtest", code, Language.JAVA, new TreeSet<String>(), new SubmitMonitorListener() {
@Override
public void statusChanged(SubmitStatus judgeStatus) {
}
@Override
public void onCompileError(String message) {
}
});
Assert.assertEquals(SubmitStatusCode.ACCEPTED, r.getCode());
}
int runningCount = 0;
@Test
public void testLongRunning() throws Exception {
String code = "public class Main { public static void main(String[] args) throws Exception { Thread.sleep(5000); } }";
runningCount = 0;
JudgeHttpClient client = MockHttpClient.create(SPOJ.CONNECTION_DATA);
JudgeSubmit.submitAngGetResult(client, new SPOJ(), "TEST", "ojh", "ojhtest", code, Language.JAVA, new TreeSet<String>(), new SubmitMonitorListener() {
@Override
public void statusChanged(SubmitStatus judgeStatus) {
if (judgeStatus.getCode() == SubmitStatusCode.RUNNING)
runningCount++;
}
@Override
public void onCompileError(String message) {
}
});
Assert.assertTrue(runningCount > 0);
}
String errorMessage;
@Test
public void testCompileErrorCase() throws Exception {
String code = "public class ";
errorMessage = "";
JudgeHttpClient client = MockHttpClient.create(SPOJ.CONNECTION_DATA);
SubmitStatus r = JudgeSubmit.submitAngGetResult(client, new SPOJ(), "TEST", "ojh", "ojhtest", code, Language.JAVA, new TreeSet<String>(), new SubmitMonitorListener() {
@Override
public void statusChanged(SubmitStatus judgeStatus) {
}
@Override
public void onCompileError(String message) {
errorMessage = message;
}
});
Assert.assertEquals(SubmitStatusCode.COMPILE_ERROR, r.getCode());
Assert.assertTrue(errorMessage.length() > 0);
}
}