class PCBTest(unittest.TestCase): #Arrange def setUp(self): self.hdd = HDD(10) self.fs = self.hdd.generate_file_system() self.instruction1 = InstructionIO() self.instruction2 = InstructionCPU() self.instructionList1 = [self.instruction1, self.instruction2] self.program1 = Program(self.instructionList1, "AProgram") self.fs.add_file("AProgram", self.program1) self.file1 = self.fs.get_program("AProgram") self.pcb = PCB(0, 2, BlockHolder(self.file1)) self.mm = MemoryManager() self.mm.set_as_ca(FirstFit()) self.mm.write(self.pcb) def test_whenIHaveAPCBAndItsIncremented_thenIHaveAPCBWithOneMoreInstructionIndex(self): self.pcb.increment() self.assertEqual(self.pcb.get_pc(), 3) def test_whenIHaveAPCBAndItsPriorityItsChanged_thenItsDifferent(self): self.pcb.set_priority(PCBPriorities().getPriorities().LOW) self.pcb.increase_priority() self.assertEqual(self.pcb._priority, PCBPriorities().getPriorities().MEDIUM)
class PCBTest(unittest.TestCase): #Arrange def setUp(self): self.hdd = HDD(10) self.fs = self.hdd.generate_file_system() self.instruction1 = InstructionIO() self.instruction2 = InstructionCPU() self.instructionList1 = [self.instruction1, self.instruction2] self.program1 = Program(self.instructionList1, "AProgram") self.fs.add_file("AProgram", self.program1) self.file1 = self.fs.get_program("AProgram") self.pcb = PCB(0, 2, BlockHolder(self.file1)) self.mm = MemoryManager() self.mm.set_as_ca(FirstFit()) self.mm.write(self.pcb) def test_whenIHaveAPCBAndItsIncremented_thenIHaveAPCBWithOneMoreInstructionIndex( self): self.pcb.increment() self.assertEqual(self.pcb.get_pc(), 3) def test_whenIHaveAPCBAndItsPriorityItsChanged_thenItsDifferent(self): self.pcb.set_priority(PCBPriorities().getPriorities().LOW) self.pcb.increase_priority() self.assertEqual(self.pcb._priority, PCBPriorities().getPriorities().MEDIUM)
class TestScheduler(unittest.TestCase): # Arrange def setUp(self): self.pcb1 = PCB(3, 5, 10) self.pcb2 = PCB(2, 5, 10) self.pcb3 = PCB(1, 5, 10) self.scheduler = Scheduler() def test_whenISetTheSchedulerPolicyAsFifo_thenIThePCBsAsThePriorityStates( self): self.scheduler.set_as_fifo() self.scheduler.add(self.pcb1) self.scheduler.add(self.pcb2) self.scheduler.add(self.pcb3) self.assertEquals(self.scheduler.next(), self.pcb1) self.assertEquals(self.scheduler.next(), self.pcb2) self.assertEquals(self.scheduler.next(), self.pcb3) def test_whenISetTheSchedulerPolicyAsPriority_thenIThePCBsAsThePriorityStates( self): self.scheduler.set_as_pq() self.pcb1.set_priority(PCBPriorities().getPriorities().LOW) self.pcb2.set_priority(PCBPriorities().getPriorities().MEDIUM) self.pcb3.set_priority(PCBPriorities().getPriorities().HIGH) self.scheduler.add(self.pcb1) self.scheduler.add(self.pcb2) self.scheduler.add(self.pcb3) self.assertEquals(self.scheduler.next(), self.pcb3) self.assertEquals(self.scheduler.next(), self.pcb2) self.assertEquals(self.scheduler.next(), self.pcb1) def test_whenISetTheSchedulerPolicyAsRR_thenIThePCBsAsThePriorityStates( self): self.scheduler.set_as_rr(5) self.scheduler.add(self.pcb1) self.scheduler.add(self.pcb2) self.scheduler.add(self.pcb3) self.assertEquals(self.scheduler.next(), self.pcb1) self.assertEquals(self.scheduler.next(), self.pcb2) self.assertEquals(self.scheduler.next(), self.pcb3)
class TestScheduler(unittest.TestCase): # Arrange def setUp(self): self.pcb1 = PCB(3, 5, 10) self.pcb2 = PCB(2, 5, 10) self.pcb3 = PCB(1, 5, 10) self.scheduler = Scheduler() def test_whenISetTheSchedulerPolicyAsFifo_thenIThePCBsAsThePriorityStates(self): self.scheduler.set_as_fifo() self.scheduler.add(self.pcb1) self.scheduler.add(self.pcb2) self.scheduler.add(self.pcb3) self.assertEquals(self.scheduler.next(), self.pcb1) self.assertEquals(self.scheduler.next(), self.pcb2) self.assertEquals(self.scheduler.next(), self.pcb3) def test_whenISetTheSchedulerPolicyAsPriority_thenIThePCBsAsThePriorityStates(self): self.scheduler.set_as_pq() self.pcb1.set_priority(PCBPriorities().getPriorities().LOW) self.pcb2.set_priority(PCBPriorities().getPriorities().MEDIUM) self.pcb3.set_priority(PCBPriorities().getPriorities().HIGH) self.scheduler.add(self.pcb1) self.scheduler.add(self.pcb2) self.scheduler.add(self.pcb3) self.assertEquals(self.scheduler.next(), self.pcb3) self.assertEquals(self.scheduler.next(), self.pcb2) self.assertEquals(self.scheduler.next(), self.pcb1) def test_whenISetTheSchedulerPolicyAsRR_thenIThePCBsAsThePriorityStates(self): self.scheduler.set_as_rr(5) self.scheduler.add(self.pcb1) self.scheduler.add(self.pcb2) self.scheduler.add(self.pcb3) self.assertEquals(self.scheduler.next(), self.pcb1) self.assertEquals(self.scheduler.next(), self.pcb2) self.assertEquals(self.scheduler.next(), self.pcb3)