### Question:
PersistentConnection implements Connection { @Override public Promise<Void> start() { return _context.getConnectionState().connect(_context); } PersistentConnection(final String url, final Transport transport, final JsonFactory factory);  PersistentConnection(final String url, final Transport transport, final TimeProvider timeProvider, final JsonFactory factory);  PersistentConnection(final String url, final TransportManager manager, final Executor executor, final Scheduler scheduler, final JsonMapper mapper);   PersistentConnection(final ConnectionContext context); @Override String getProtocolVersion(); @Override String getUrl(); @Override Transport getTransport(); @Override JsonMapper getMapper(); @Override boolean isConnected(); @Override void addHeader(final String name, final String value); @Override void addParameter(final String name, final String value); @Override void addConnectionListener(final ConnectionListener listener); @Override void removeConnectionListener(final ConnectionListener listener); @Override void setConnectionData(final String connectionData); @Override Promise<Void> start(); @Override Promise<Void> stop(); @Override Promise<Void> send(final String message);  }### Answer:
@Test public void startTest() { final PersistentConnection connection = new PersistentConnection(_connectionContext); expect(_connectionContext.getConnectionState()).andReturn(_connectionState); expect(_connectionState.connect(_connectionContext)).andReturn(Promises.newSuccess()); replay(_connectionContext, _connectionState); final Promise<Void> start = connection.start(); verify(_connectionContext, _connectionState); assertTrue(start.isComplete()); }