### Question:
DatabaseOLAPService implements OLAPService<PhysicalTable, Field> { @Override public List<Field> resolveFields(Connector connector, PhysicalTable table) { return extractDatabaseMetaData(connector, (bdmd) -> { try (ResultSet rs = bdmd.getColumns(table.getTableCatalog(), table.getTableSchema(), table.getTableName(), DatabaseOLAPService.COLUMN_NAME_PATTERN_ANY);) { return extractDataSet(rs, Field.class); } }); } DatabaseOLAPService(); @Override List<PhysicalTable> resolveTables(Connector connector); @Override List<Field> resolveFields(Connector connector, PhysicalTable table); @Override PhysicalTable resolveTable(Connector connector, PhysicalTable table); @Override DataSet<Field> fetchData(Connector connector, Cube cube);  }### Answer:
@Test public void testResolveFields() { Connector connector = ConnectorFactory.newSampleDBConnector(); PhysicalTable table = olapService.resolveTables(connector).stream().filter( t -> TestConstants.TABLE_CUST_BASIC_INFO.equals(t.getTableName())).findAny().get(); Field cusIdColumn = olapService.resolveFields(connector, table).stream().filter( c -> TestConstants.FIELD_CUS_ID.equals(c.getColumnName())).findAny().get(); assertEquals(Types.CHAR, cusIdColumn.getDataType()); }