public void findJob_notEnoughCPU_delayFirstToMuch()
        {
            Scheduler sch = new Scheduler();
            BenchmarkSystem.BenchmarkSystem.AvailableCPU = 2;
            Job j1 = new Job(3, 300, new Owner("nicolai"), s => "Hello " + s);
            Job j2 = new Job(1, 700, new Owner("nicolai"), s => "Hello " + s);
            Job j3 = new Job(1, 3000, new Owner("nicolai"), s => "Hello " + s);

            sch.addJob(j1);
            sch.addJob(j2);
            sch.addJob(j3);

            sch.findNextJobToRun();
            sch.findNextJobToRun();

            BenchmarkSystem.BenchmarkSystem.AvailableCPU = 23;

            Job nextJob = sch.findNextJobToRun();

            Assert.AreEqual(j1, nextJob);
        }
        public void findJob_findFirst()
        {
            Scheduler sch = new Scheduler();
            Job j1 = new Job(1, 300, new Owner("nicolai"), s => "Hello " + s);
            Job j2 = new Job(1, 700, new Owner("nicolai"), s => "Hello " + s);
            Job j3 = new Job(1, 3000, new Owner("nicolai"), s => "Hello " + s);

            sch.addJob(j1);
            sch.addJob(j2);
            sch.addJob(j3);

            Job nextJob = sch.findNextJobToRun();
            Assert.AreEqual(j1, nextJob);
        }
        public void findJob_toManyShortAndLongJobs()
        {
            Scheduler sch = new Scheduler();
            Job j1 = new Job(1, 300, new Owner("nicolai"), s => "Hello " + s);
            Job j2 = new Job(1, 700, new Owner("nicolai"), s => "Hello " + s);
            Job j3 = new Job(1, 3000, new Owner("nicolai"), s => "Hello " + s);

            sch.addJob(j1);
            sch.addJob(j2);
            sch.addJob(j3);

            sch.shortRunningJobs = sch.longRunningJobs = 40;
            Job nextJob = sch.findNextJobToRun();

            Assert.AreEqual(j3, nextJob);
        }