public void TestWork_NoJobs() { JobQueue queue = new JobQueue(); QueueExecutor executor = new QueueExecutor(queue); executor.Worker = new WorkerImpl(); executor.PluginFactory = new DudFactory(); executor.Persister = new DudPersister(); // Shouldn't get any exceptions executor.Start(); }
public void TestWork_NoWorker() { ObjectJobDefinition d = new ObjectJobDefinition( new PipelineDefinition( new AlgorithmDefinition[] { }), new JobInput[] { }); JobRequest r = new JobRequest(d); JobTicket ticket = new JobTicket(r, new DudCancellationHandler()); JobQueue queue = new JobQueue(); QueueExecutor executor = new QueueExecutor(queue); bool didComplete = false; executor.ExhaustedQueue += (s, e) => didComplete = true; queue.Enqueue(ticket); executor.Start(); }
public void TestWork_OneJob() { ObjectJobDefinition d = new ObjectJobDefinition( new PipelineDefinition( new AlgorithmDefinition[] { }), new JobInput[] { }); JobRequest r = new JobRequest(d); JobTicket ticket = new JobTicket(r, new DudCancellationHandler()); JobQueue queue = new JobQueue(); WorkerImpl worker = new WorkerImpl(); QueueExecutor executor = new QueueExecutor(queue); executor.Worker = worker; executor.PluginFactory = new DudFactory(); executor.Persister = new DudPersister(); bool didComplete = false; executor.ExhaustedQueue += (s, e) => didComplete = true; queue.Enqueue(ticket); executor.Start(); int totalTime = 0; while (didComplete == false) { Thread.Sleep(1); totalTime += 1; if (totalTime > 10000) { Assert.Fail("Did not complete job in less than 10s"); } } Assert.IsTrue(worker.DidWork); }