package cn.edu.zju.acm.onlinejudge.judgeservice;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import cn.edu.zju.acm.onlinejudge.bean.Limit;
import cn.edu.zju.acm.onlinejudge.bean.Problem;
import cn.edu.zju.acm.onlinejudge.bean.Reference;
import cn.edu.zju.acm.onlinejudge.bean.Submission;
import cn.edu.zju.acm.onlinejudge.bean.enumeration.JudgeReply;
import cn.edu.zju.acm.onlinejudge.bean.enumeration.ReferenceType;
import cn.edu.zju.acm.onlinejudge.dao.DAOFactory;
import cn.xuchuan.util.ReflectionUtil;
import static org.junit.Assert.*;
public class JudgeClientInstanceUnitTest {
private JudgeClientJudgeThread instance;
private Submission submission;
private SubmissionQueueReader queue;
private static MockClient server;
@BeforeClass
public static void init() throws Exception {
ReflectionUtil.setFieldValue(DAOFactory.class, "languageDAO", new MockLanguageDAO());
ReflectionUtil.setFieldValue(DAOFactory.class, "problemDAO", new MockProblemDAO());
ReflectionUtil.setFieldValue(DAOFactory.class, "submissionDAO", new MockSubmissionDAO());
ReflectionUtil.setFieldValue(DAOFactory.class, "referenceDAO", new MockReferenceDAO());
Problem problem = new Problem();
problem.setId(0);
problem.setRevision(0);
Limit limit = new Limit();
limit.setTimeLimit(1);
limit.setMemoryLimit(1024);
limit.setOutputLimit(1);
problem.setLimit(limit);
Reference reference = new Reference();
reference.setReferenceType(ReferenceType.INPUT);
reference.setContent("0 0\n1 2\n2 3\n".getBytes("ASCII"));
DAOFactory.getReferenceDAO().save(reference, 0);
DAOFactory.getReferenceDAO().save(reference, 1);
reference = new Reference();
reference.setReferenceType(ReferenceType.OUTPUT);
reference.setContent("0\n3\n5\n".getBytes("ASCII"));
DAOFactory.getReferenceDAO().save(reference, 0);
DAOFactory.getReferenceDAO().save(reference, 1);
DAOFactory.getProblemDAO().update(problem);
}
@Before
public void setUp() throws Exception {
// server = new MockClient();
queue = new SubmissionQueueReader();
submission = new Submission();
submission.setId(0);
submission.setLanguage(LanguageManager.getLanguage(0));
submission.setProblemId(0);
submission.setContent("test");
DAOFactory.getSubmissionDAO().update(submission);
instance = new JudgeClientJudgeThread(queue, new InetSocketAddress(InetAddress.getByName("192.168.37.130"), 2191));
instance.start();
}
@After
public void tearDown() throws Exception {
//server.stop();
//instance.interrupt();
}
@Test
public void testSendProblemAutomatically() throws Exception {
Thread.sleep(10000);
}
@Test(timeout = 1000)
public void testRejudge() throws Exception {
}
@Test
public void testNormal() throws Exception {
}
@Test(timeout = 3000)
public void testConnectionTimeOut() throws Exception {
}
@Test(timeout = 15000)
public void testReadTimeOut() throws Exception {
}
}