def test_nonTLSTransport(self):
        """
        L{authenticateRequest} returns C{False} if the client is not connected
        via a TLS transport.
        """
        class FakeTransport(object):
            pass

        FakeRequest = namedtuple('Request', 'channel')
        FakeChannel = namedtuple('Channel', 'transport')
        channel = FakeChannel(FakeTransport())
        request = FakeRequest(channel)

        self.assertEqual(
            False, authenticateRequest(request, u'localhost'))
    def test_authenticateSucceed(self):
        """
        L{authenticateRequest} returns C{True} if the provided client
        certificate has a matching hostname.
        """
        privateCert = PrivateCertificate.loadPEM(
            FilePath(__file__).sibling(b'data').child(b'test.cert').getContent())
        self.assertEqual(
            privateCert.original.get_subject().commonName, b'localhost')

        options = CertificateOptions(
            privateKey=privateCert.privateKey.original,
            certificate=privateCert.original)
        request = self.createRequest(options)
        self.assertEqual(True, authenticateRequest(request, u'localhost'))