class InterruptionManagerTests(unittest.TestCase): def setUp(self): self.killHandleMock = Mock() self.timeOutHandleMock = Mock() self.ioHandleMock = Mock() self.lockProcessingMock = Condition() self.irqQueueMock = Queue() self.lockIrqQueueMock = Condition() self.lockReadyQueueMock = Condition() self.interruptionManager = InterruptionManager(self.lockReadyQueueMock, self.lockProcessingMock, self.irqQueueMock, self.lockIrqQueueMock) self.interruptionManager.registerHandler(IRQ.kill, self.killHandleMock) self.interruptionManager.registerHandler(IRQ.timeOut, self.timeOutHandleMock) self.interruptionManager.registerHandler(IRQ.IO, self.ioHandleMock) def test_registry(self): self.assertEqual(len(self.interruptionManager.handles), 3) def testCanHandleKILL(self): self.interruptionManager.setDaemon(True) irq = IRQ(IRQ.kill, Pcb(0, 0, 0), None, Mock()) self.interruptionManager.handle(irq) self.interruptionManager.start() self.killHandleMock.handle.assert_called_with(irq) self.assertEqual(self.ioHandleMock.call_count, 0) self.assertEqual(self.timeOutHandleMock.call_count, 0) def testCanHandleTIMEOUT(self): self.interruptionManager.setDaemon(True) irq = IRQ(IRQ.timeOut, Pcb(0, 0, 0), None, Mock()) self.interruptionManager.handle(irq) self.interruptionManager.start() self.timeOutHandleMock.handle.assert_called_with(irq) self.assertEqual(self.ioHandleMock.call_count, 0) self.assertEqual(self.killHandleMock.call_count, 0) def testCanHandleIO(self): self.interruptionManager.setDaemon(True) irq = IRQ(IRQ.IO, Pcb(0, 0, 1), None, Mock()) self.interruptionManager.handle(irq) self.interruptionManager.start() self.ioHandleMock.handle.assert_called_with(irq) self.assertEqual(self.killHandleMock.call_count, 0) self.assertEqual(self.timeOutHandleMock.call_count, 0)
class InterruptionManagerTests(unittest.TestCase): def setUp(self): self.killHandleMock = Mock() self.timeOutHandleMock = Mock() self.ioHandleMock = Mock() self.lockProcessingMock= Condition() self.irqQueueMock =Queue() self.lockIrqQueueMock = Condition() self.lockReadyQueueMock= Condition() self.interruptionManager = InterruptionManager(self.lockReadyQueueMock,self.lockProcessingMock, self.irqQueueMock, self.lockIrqQueueMock) self.interruptionManager.registerHandler(IRQ.kill, self.killHandleMock) self.interruptionManager.registerHandler(IRQ.timeOut, self.timeOutHandleMock) self.interruptionManager.registerHandler(IRQ.IO, self.ioHandleMock) def test_registry(self): self.assertEqual(len(self.interruptionManager.handles), 3) def testCanHandleKILL(self): self.interruptionManager.setDaemon(True) irq = IRQ(IRQ.kill, Pcb(0, 0, 0), None,Mock()) self.interruptionManager.handle(irq) self.interruptionManager.start() self.killHandleMock.handle.assert_called_with(irq) self.assertEqual(self.ioHandleMock.call_count, 0) self.assertEqual(self.timeOutHandleMock.call_count, 0) def testCanHandleTIMEOUT(self): self.interruptionManager.setDaemon(True) irq = IRQ(IRQ.timeOut, Pcb(0, 0, 0), None, Mock()) self.interruptionManager.handle(irq) self.interruptionManager.start() self.timeOutHandleMock.handle.assert_called_with(irq) self.assertEqual(self.ioHandleMock.call_count, 0) self.assertEqual(self.killHandleMock.call_count, 0) def testCanHandleIO(self): self.interruptionManager.setDaemon(True) irq = IRQ(IRQ.IO, Pcb(0, 0, 1), None, Mock()) self.interruptionManager.handle(irq) self.interruptionManager.start() self.ioHandleMock.handle.assert_called_with(irq) self.assertEqual(self.killHandleMock.call_count, 0) self.assertEqual(self.timeOutHandleMock.call_count, 0)