public void AddJob_TwoFits_CloserFitChosen() { using var gate = new AutoResetEvent(false); var fit1 = new TestJobFit(gate); var fit2 = new TestJobFit(gate) { LocationColumn = _map.HalfColumns - 1, LocationRow = _map.HalfRows - 1 }; _fits = new IJobFit[2] { fit1, fit2 }; var job = new Job( JobManager.Medium, new Activity[1] { new Activity( new ActivityStep[1] { new MoveToStep(_map.HalfColumns, _map.HalfRows) } ) }, 0, JobState.Pending ); _manager.AddJob(job); gate.WaitOne(DELAY_MS); Assert.IsNull(fit1.Job); Assert.AreSame(job, fit2.Job); }
public void AddJob_OneFit_JobAssigned() { using var gate = new AutoResetEvent(false); var fit = new TestJobFit(gate); _fits = new IJobFit[1] { fit }; var job = new Job( JobManager.Medium, new Activity[1] { new Activity( new ActivityStep[1] { new MoveToStep(_map.HalfColumns, _map.HalfRows) } ) }, 0, JobState.Pending ); _manager.AddJob(job); gate.WaitOne(DELAY_MS); Assert.AreSame(job, fit.Job); }