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("在算术表达式中使用了函数指针")); } }