### Question:
ExampleMetadata implements ConnectorMetadata { @Override public ColumnMetadata getColumnMetadata(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnHandle columnHandle) { return ((ExampleColumnHandle) columnHandle).getColumnMetadata(); } @Inject  ExampleMetadata(ExampleClient exampleClient); @Override List<String> listSchemaNames(ConnectorSession session); List<String> listSchemaNames(); @Override ExampleTableHandle getTableHandle(ConnectorSession session, SchemaTableName tableName); @Override ConnectorTableMetadata getTableMetadata(ConnectorSession session, ConnectorTableHandle table); @Override List<SchemaTableName> listTables(ConnectorSession session, Optional<String> optionalSchemaName); @Override Map<String, ColumnHandle> getColumnHandles(ConnectorSession session, ConnectorTableHandle tableHandle); @Override Map<SchemaTableName, List<ColumnMetadata>> listTableColumns(ConnectorSession session, SchemaTablePrefix prefix); @Override ColumnMetadata getColumnMetadata(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnHandle columnHandle); @Override boolean usesLegacyTableLayouts(); @Override ConnectorTableProperties getTableProperties(ConnectorSession session, ConnectorTableHandle table);  }### Answer:
@Test public void getColumnMetadata() { assertEquals(metadata.getColumnMetadata(SESSION, NUMBERS_TABLE_HANDLE, new ExampleColumnHandle("text", createUnboundedVarcharType(), 0)), new ColumnMetadata("text", createUnboundedVarcharType())); }