### Question:
ForwardingJdbcClient implements JdbcClient { public static JdbcClient of(Supplier<JdbcClient> jdbcClientSupplier) { requireNonNull(jdbcClientSupplier, "jdbcClientSupplier is null"); return new ForwardingJdbcClient() { @Override public JdbcClient delegate() { return requireNonNull(jdbcClientSupplier.get(), "jdbcClientSupplier.get() is null"); } }; }  static JdbcClient of(Supplier<JdbcClient> jdbcClientSupplier); @Override boolean schemaExists(JdbcIdentity identity, String schema); @Override Set<String> getSchemaNames(JdbcIdentity identity); @Override List<SchemaTableName> getTableNames(JdbcIdentity identity, Optional<String> schema); @Override Optional<JdbcTableHandle> getTableHandle(JdbcIdentity identity, SchemaTableName schemaTableName); @Override List<JdbcColumnHandle> getColumns(ConnectorSession session, JdbcTableHandle tableHandle); @Override Optional<ColumnMapping> toPrestoType(ConnectorSession session, Connection connection, JdbcTypeHandle typeHandle); @Override List<ColumnMapping> getColumnMappings(ConnectorSession session, List<JdbcTypeHandle> typeHandles); @Override WriteMapping toWriteMapping(ConnectorSession session, Type type); @Override boolean supportsGroupingSets(); @Override Optional<JdbcExpression> implementAggregation(ConnectorSession session, AggregateFunction aggregate, Map<String, ColumnHandle> assignments); @Override ConnectorSplitSource getSplits(ConnectorSession session, JdbcTableHandle layoutHandle); @Override Connection getConnection(JdbcIdentity identity, JdbcSplit split); @Override void abortReadConnection(Connection connection); @Override PreparedStatement buildSql(ConnectorSession session, Connection connection, JdbcSplit split, JdbcTableHandle tableHandle, List<JdbcColumnHandle> columnHandles); @Override JdbcOutputTableHandle beginCreateTable(ConnectorSession session, ConnectorTableMetadata tableMetadata); @Override void commitCreateTable(JdbcIdentity identity, JdbcOutputTableHandle handle); @Override JdbcOutputTableHandle beginInsertTable(ConnectorSession session, JdbcTableHandle tableHandle, List<JdbcColumnHandle> columns); @Override void finishInsertTable(JdbcIdentity identity, JdbcOutputTableHandle handle); @Override void dropTable(JdbcIdentity identity, JdbcTableHandle jdbcTableHandle); @Override void rollbackCreateTable(JdbcIdentity identity, JdbcOutputTableHandle handle); @Override String buildInsertSql(JdbcOutputTableHandle handle); @Override Connection getConnection(JdbcIdentity identity, JdbcOutputTableHandle handle); @Override PreparedStatement getPreparedStatement(Connection connection, String sql); @Override TableStatistics getTableStatistics(ConnectorSession session, JdbcTableHandle handle, TupleDomain<ColumnHandle> tupleDomain); @Override boolean supportsLimit(); @Override boolean isLimitGuaranteed(ConnectorSession session); @Override void setColumnComment(JdbcIdentity identity, JdbcTableHandle handle, JdbcColumnHandle column, Optional<String> comment); @Override void addColumn(ConnectorSession session, JdbcTableHandle handle, ColumnMetadata column); @Override void dropColumn(JdbcIdentity identity, JdbcTableHandle handle, JdbcColumnHandle column); @Override void renameColumn(JdbcIdentity identity, JdbcTableHandle handle, JdbcColumnHandle jdbcColumn, String newColumnName); @Override void renameTable(JdbcIdentity identity, JdbcTableHandle handle, SchemaTableName newTableName); @Override void createTable(ConnectorSession session, ConnectorTableMetadata tableMetadata); @Override void createSchema(JdbcIdentity identity, String schemaName); @Override void dropSchema(JdbcIdentity identity, String schemaName); @Override Optional<SystemTable> getSystemTable(ConnectorSession session, SchemaTableName tableName); @Override String quoted(String name); @Override String quoted(RemoteTableName remoteTableName); @Override Map<String, Object> getTableProperties(JdbcIdentity identity, JdbcTableHandle tableHandle);  }### Answer:
@Test public void testProperForwardingMethodsAreCalled() { assertProperForwardingMethodsAreCalled(JdbcClient.class, jdbcClient -> ForwardingJdbcClient.of(() -> jdbcClient)); }