@Test 
public void testHandlePortStatus() throws Exception {

    IOFSwitch sw = createMock(IOFSwitch.class);
    OFPhysicalPort port = new OFPhysicalPort();
    port.setName("myPortName1");
    port.setPortNumber((short)42);
    
    OFPortStatus ofps = new OFPortStatus();
    ofps.setDesc(port);
    
    ofps.setReason((byte)OFPortReason.OFPPR_ADD.ordinal());
    sw.setPort(port);
    expectLastCall().once();
    replay(sw);
    controller.handlePortStatusMessage(sw, ofps, false);
    verify(sw);
    verifyPortChangedUpdateInQueue(sw);
    reset(sw);
    
    ofps.setReason((byte)OFPortReason.OFPPR_MODIFY.ordinal());
    sw.setPort(port);
    expectLastCall().once();
    replay(sw);
    controller.handlePortStatusMessage(sw, ofps, false);
    verify(sw);
    verifyPortChangedUpdateInQueue(sw);
    reset(sw);
    
    ofps.setReason((byte)OFPortReason.OFPPR_DELETE.ordinal());
    sw.deletePort(port.getPortNumber());
    expectLastCall().once();
    replay(sw);
    controller.handlePortStatusMessage(sw, ofps, false);
    verify(sw);
    verifyPortChangedUpdateInQueue(sw);
    reset(sw);
}