Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }