package com.voidsearch.test.storage.jobqueue; import org.testng.annotations.*; import com.voidsearch.voidbase.storage.jobqueue.JobQueue; import com.voidsearch.voidbase.storage.jobqueue.JobRequest; import com.voidsearch.voidbase.storage.jobqueue.JobResult; import com.voidsearch.voidbase.storage.jobqueue.SimpleJobResult; import com.voidsearch.voidbase.supervision.SupervisionException; import java.util.LinkedList; import java.util.Random; /** * set of prority queue tests * * @author Aleksandar Bradic */ public class JobPriorityQueueTest { @Test public void nullTest() { int TOTAL_JOBS = 100; long TIMEOUT = 1000; System.out.println("simple JobQueue test"); JobQueue queue = new JobQueue(); long startTime = System.currentTimeMillis(); LinkedList<JobRequest> requests = new LinkedList<JobRequest>(); for (int i=0; i<TOTAL_JOBS; i++) { TestRequest req = new TestRequest(); req.setTimeout(TIMEOUT); requests.add(req); try { queue.put(req); } catch (SupervisionException e) { e.printStackTrace(); } } for (JobRequest req : requests) { try { JobResult result = queue.get(req); System.out.println(req.getID() + "\t" + result); } catch (SupervisionException e) { e.printStackTrace(); } } long elapsedTime = System.currentTimeMillis() - startTime; System.out.println("processed total of : " + requests.size() + " jobs"); System.out.println("total time elapsed : " + elapsedTime + " milliseconds"); assert (elapsedTime <= TOTAL_JOBS*TIMEOUT); } public class TestRequest extends JobRequest { private Random rnd = new Random(); // delete this after fixing it // added just to fix broken build public JobResult expired(){ JobResult deleteMe=null; return deleteMe; } public JobResult execute() { try { Thread.sleep(rnd.nextInt(1000)); } catch (InterruptedException e) { e.printStackTrace(); } return new SimpleJobResult("DONE"); } } }