def setUp(self):
        """Setup for testing."""
        # make sure we start with clean state
        yield super(BaseProtocolTestCase, self).setUp()
        logger.info("starting test %s", self.id())
        self.ssl_cert = crypto.load_certificate(crypto.FILETYPE_PEM,
                                                server_crt)
        if server_crt_chain:
            self.ssl_cert_chain = crypto.load_certificate(
                crypto.FILETYPE_PEM, server_crt_chain)
        else:
            self.ssl_cert_chain = None
        self.ssl_key = crypto.load_privatekey(crypto.FILETYPE_PEM, server_key)

        self._state = State()
        self.service = StorageServerService(
            0,
            auth_provider_class=self.auth_provider_class,
            status_port=0,
            heartbeat_interval=self.heartbeat_interval)
        yield self.service.startService()