package org.psjava.judgesubmit;
import org.junit.Test;
import org.psjava.util.ZeroTo;
import static org.junit.Assert.*;
public class TJUTest {
@Test
public void testSubmit() throws Exception {
String id = new TJU().getSubmitter().submitAndGetId(MockHttpClient.create(TJU.CONNECTION_DATA), "1001", "ojh", "ojh", Language.C, "ASDFSDFDSFASDFASDFSADFASDFASDF");
assertTrue(id.length() > 5);
}
@Test(expected = InvalidInputException.class)
public void testInvalidUser() throws Exception {
new TJU().getSubmitter().submitAndGetId(MockHttpClient.create(TJU.CONNECTION_DATA), "1001","test","test", Language.C, "adjfaljfldkjfaljfaljfdljdfaldjfdljf");
}
@Test (expected = InvalidInputException.class)
public void testSubmitTooLongCode() throws Exception {
String code = "";
for(int i : ZeroTo.get(4000))
code += "1234567890";
new TJU().getSubmitter().submitAndGetId(MockHttpClient.create(TJU.CONNECTION_DATA), "1001", "ojh", "ojh", Language.C, code);
}
@Test
public void testLastSubmitId() throws Exception {
JudgeHttpClient client = MockHttpClient.create(TJU.CONNECTION_DATA);
assertTrue(TJU.receiveLastSubmitIdOrZero(client, "imyoyo") != 0);
assertTrue(TJU.receiveLastSubmitIdOrZero(client, "imyoyox") == 0);
}
@Test
public void testStatus() throws Exception {
SubmitStatus r = new TJU().getSubmitStatusReceiver().receive(MockHttpClient.create(TJU.CONNECTION_DATA), "1429158");
assertEquals(SubmitStatusCode.TIME_LIMIT_EXCEED, r.getCode());
assertEquals(4180, r.getTimeUsage(-1));
assertEquals(1352*1024, r.getMemoryUsage(-1));
}
@Test
public void testCompileError() throws Exception {
String msg = new TJU().getCompileErrorMessageReceiver().receive(MockHttpClient.create(TJU.CONNECTION_DATA), "", "", "1429288");
assertTrue(msg.contains("在算术表达式中使用了函数指针"));
}
}