package org.psjava.judgesubmit;
import junit.framework.Assert;
import org.junit.Test;
public class SPOJSubmitStatusReceiverTest {
@Test
public void testAccepted() throws Exception {
SubmitStatus r = getInstance().receive(MockHttpClient.create(SPOJ.CONNECTION_DATA), "10442782");
Assert.assertEquals(SubmitStatusCode.ACCEPTED, r.getCode());
Assert.assertEquals(2290L, r.getTimeUsage(-1));
Assert.assertEquals(7235174L, r.getMemoryUsage(-1));
}
@Test(expected = InvalidInputException.class)
public void testInvalidSubmitId() throws Exception {
getInstance().receive(MockHttpClient.create(SPOJ.CONNECTION_DATA), "99999999");
}
@Test
public void testRuntimeError() throws Exception {
JudgeHttpClient client = MockHttpClient.create(SPOJ.CONNECTION_DATA);
SubmitStatus r1 = getInstance().receive(client, "10443136");
Assert.assertEquals(SubmitStatusCode.RUNTIME_ERROR, r1.getCode());
Assert.assertEquals("SIGKILL", r1.getAdditionalMessage(""));
SubmitStatus r2 = getInstance().receive(client, "10443100");
Assert.assertEquals(SubmitStatusCode.RUNTIME_ERROR, r2.getCode());
Assert.assertEquals("NZEC", r2.getAdditionalMessage(""));
}
@Test
public void testOtherStatusCodes() throws Exception {
JudgeHttpClient client = MockHttpClient.create(SPOJ.CONNECTION_DATA);
Assert.assertEquals(SubmitStatusCode.WRONG_ANSWER, getInstance().receive(client, "10442793").getCode());
Assert.assertEquals(SubmitStatusCode.TIME_LIMIT_EXCEED, getInstance().receive(client, "10442791").getCode());
Assert.assertEquals(SubmitStatusCode.RUNTIME_ERROR, getInstance().receive(client, "10443136").getCode());
}
private SPOJSubmitStatusReceiver getInstance() {
return new SPOJSubmitStatusReceiver();
}
}