public void JobShouldRunIfRunnerThreadIsRunning() { string name = MethodBase.GetCurrentMethod().Name; JobConductorService fm = GetTestJobConductor(name); fm.StopJobRunnerThread(); fm.JobQueue.Clear(); fm.StartJobRunnerThread(); JobConf conf = fm.CreateJob(name); TestWorker.ValueToCheck = false; TestWorker worker = new TestWorker(); conf.AddWorker(worker); Expect.IsFalse(TestWorker.ValueToCheck); bool? finished = false; AutoResetEvent signal = new AutoResetEvent(false); fm.WorkerFinished += (o, a) => { Expect.IsTrue(TestWorker.ValueToCheck); finished = true; signal.Set(); }; fm.EnqueueJob(conf); signal.WaitOne(10000); Expect.IsTrue(finished == true); }
public void ShouldBeAbleToRunJobWithSpecifiedStepNumber() { string name = MethodBase.GetCurrentMethod().Name; TestWorker.ValueToCheck = false; StepTestWorker.ValueToCheck = false; JobConductorService jc = GetTestJobConductor(name); string jobName = "Job_" + name; jc.AddWorker(typeof(TestWorker).AssemblyQualifiedName, "TestWorker", jobName); jc.AddWorker(typeof(StepTestWorker).AssemblyQualifiedName, "StepTestWorker", jobName); Expect.IsFalse(TestWorker.ValueToCheck); Expect.IsFalse(StepTestWorker.ValueToCheck); bool? finished = false; AutoResetEvent signal = new AutoResetEvent(false); jc.JobFinished += (o, a) => { Expect.IsFalse(TestWorker.ValueToCheck, "testworker value should have been false after job finished"); Expect.IsTrue(StepTestWorker.ValueToCheck, "Step test worker value should have been true after job finished"); finished = true; signal.Set(); }; JobConf conf = jc.GetJob(jobName); jc.RunJob(conf.CreateJob(), 1); signal.WaitOne(10000); Expect.IsTrue(finished.Value, "finished value should have been set"); }
public void ExistsShouldBeTrueAfterCreate() { string name = MethodBase.GetCurrentMethod().Name; JobConductorService fm = GetTestJobConductor(name); string testJobName = name + "_JobName_".RandomLetters(4); fm.CreateJob(testJobName); Expect.IsTrue(fm.JobExists(testJobName)); }
public void JobConductorShouldCreateJobConfWithJobDirectorySet() { string name = MethodBase.GetCurrentMethod().Name; JobConductorService foreman = GetTestJobConductor(name); JobConf conf = foreman.CreateJobConf(name); Expect.AreEqual(name, conf.Name); Expect.IsTrue(conf.JobDirectory.StartsWith(foreman.JobsDirectory), "conf directory wasn't set correctly"); }
public void JobConductorShouldCreaetJobConf() { JobConductorService.Default.JobsDirectory = new DirectoryInfo(MethodBase.GetCurrentMethod().Name).FullName; JobConductorService fm = JobConductorService.Default; string name = "JobConfTest_".RandomLetters(4); JobConf conf = fm.CreateJob(name); string path = Path.Combine(fm.JobsDirectory, conf.Name, conf.Name + ".job"); Expect.IsTrue(File.Exists(path)); }
public void AddWorkerShouldSetWorkerName() { string name = MethodBase.GetCurrentMethod().Name; JobConductorService fm = GetTestJobConductor(name); string workerName = "worker_" + name; string jobName = "Job_" + name; fm.AddWorker(typeof(TestWorker).AssemblyQualifiedName, workerName, jobName); Expect.IsTrue(fm.WorkerExists(jobName, workerName)); }
protected override WorkState Do(WorkState currentWorkState) { SuspendedJob suspended = JobConductorService.SuspendJob(Job);; WorkState <SuspendedJob> result = new WorkState <SuspendedJob>(this, suspended) { Status = Status.Suspended }; return(result); }
public void AddWorkerShouldCreateJob() { string name = MethodBase.GetCurrentMethod().Name; JobConductorService fm = GetTestJobConductor(name); string jobName = "Job_".RandomLetters(4); Expect.IsFalse(fm.JobExists(jobName)); fm.AddWorker(typeof(TestWorker).AssemblyQualifiedName, "worker", jobName); Expect.IsTrue(fm.JobExists(jobName)); }
public void CreateJobShouldThrowExceptionIfItExists() { string name = MethodBase.GetCurrentMethod().Name; JobConductorService fm = GetTestJobConductor(name); string testJobName = name + "_JobName_".RandomLetters(4); fm.CreateJob(testJobName); Expect.IsTrue(fm.JobExists(testJobName)); Expect.Throws(() => { fm.CreateJob(testJobName); }, "Should have thrown an exception but didn't"); }
private static JobConductorService GetTestJobConductor(string jobConductorName) { DirectoryInfo dir = new DirectoryInfo("JobConductor_" + jobConductorName); if (dir.Exists) { dir.Delete(true); } JobConductorService fm = new JobConductorService(); fm.JobsDirectory = dir.FullName; return(fm); }
public void ShouldBeAbleToAddWorker() { string name = MethodBase.GetCurrentMethod().Name; JobConductorService fm = GetTestJobConductor(name); string jobName = "Job_" + name; string workerName = "worker_1"; fm.AddWorker(typeof(TestWorker).AssemblyQualifiedName, workerName, jobName); JobConf job = fm.GetJob(jobName); Expect.IsTrue(job.WorkerExists(workerName)); }
public void AddWorkerShouldThrowArgumentNullException() { string name = MethodBase.GetCurrentMethod().Name; JobConductorService fm = GetTestJobConductor(name); Expect.Throws(() => { fm.AddWorker("noTypeByThisNameShouldBeFound".RandomLetters(4), "work_" + name, "JobName"); }, (ex) => { ex.IsInstanceOfType <ArgumentNullException>("Exception wasn't the right type"); }, "Should have thrown an exception but didn't"); }
public void GetJobShouldCreateNewJob() { string name = MethodBase.GetCurrentMethod().Name; JobConductorService fm = GetTestJobConductor(name); Expect.IsFalse(fm.JobExists(name)); JobConf validate = fm.GetJob(name); Expect.IsNotNull(validate); Expect.AreEqual(name, validate.Name); Expect.IsTrue(fm.JobExists(validate.Name)); Expect.IsTrue(File.Exists(validate.GetFilePath())); }
public void GetJobShouldReturnExistingJob() { string name = MethodBase.GetCurrentMethod().Name; JobConductorService orch = GetTestJobConductor(name); Expect.IsFalse(orch.JobExists(name)); JobConf conf = orch.CreateJob(name); Expect.IsTrue(orch.JobExists(name)); JobConf validate = orch.GetJobConf(name); Expect.IsNotNull(validate); Expect.AreEqual(name, validate.Name); }
public void AfterAddWorkerCreateJobShouldHaveCorrectWorkers() { string name = MethodBase.GetCurrentMethod().Name; JobConductorService fm = GetTestJobConductor(name); string jobName = "Job_" + name; fm.AddWorker(typeof(TestWorker).AssemblyQualifiedName, "one", jobName); fm.AddWorker(typeof(TestWorker).AssemblyQualifiedName, "two", jobName); JobConf conf = fm.GetJob(jobName); Job job = conf.CreateJob(); Expect.IsTrue(job.WorkerNames.Length == 2); Expect.IsNotNull(job["one"]); Expect.IsNotNull(job["two"]); Expect.AreEqual("one", job["one"].Name); Expect.AreEqual("two", job["two"].Name); }
public void JobsDirectoryShouldBeInAppDataFolder() { JobConductorService orchestrator = new JobConductorService(); Expect.AreEqual(Path.Combine(RuntimeSettings.AppDataFolder, "Jobs"), orchestrator.JobsDirectory); }