'If C{connectionLost} is called directly on a port object, it succeeds
(and doesn\'t expect the presence of a C{deferred} attribute).
C{connectionLost} is called by L{reactor.disconnectAll} at shutdown.'

def test_directConnectionLostCall(self):

    serverFactory = MyServerFactory()
    port = reactor.listenTCP(0, serverFactory, interface='127.0.0.1')
    portNumber = port.getHost().port
    port.connectionLost(None)
    client = MyClientFactory()
    serverFactory.protocolConnectionMade = defer.Deferred()
    client.protocolConnectionMade = defer.Deferred()
    reactor.connectTCP('127.0.0.1', portNumber, client)
    def check(ign):
        client.reason.trap(error.ConnectionRefusedError)
    return client.failDeferred.addCallback(check)
