### Question:
SpannerResult implements Result { @Override public <T> Flux<T> map(BiFunction<Row, RowMetadata, ? extends T> f) { if (this.resultRows == null) { return Flux.empty(); } return this.resultRows.map(row -> f.apply(row, row.getRowMetadata())); } SpannerResult(Flux<SpannerRow> resultRows, Mono<Integer> rowsUpdated); @Override Mono<Integer> getRowsUpdated(); @Override Flux<T> map(BiFunction<Row, RowMetadata, ? extends T> f);  }### Answer:
@Test public void mapTest() { String columnName = this.resultSetMetadata .getRowType() .getFields(0) .getName(); Flux<String> result = new SpannerResult(this.resultSet, Mono.just(0)) .map((row, metadata) -> row.get(0, String.class) + "-" + metadata.getColumnMetadata(0).getName()); StepVerifier.create(result) .expectNext("key1-" + columnName, "key2-" + columnName) .verifyComplete(); }