@Test public void pairValues() { Flux<String> flux1 = Flux.just("a", "b", "c"); Flux<Integer> flux2 = Flux.just(1, 2, 3, 4); StepVerifier.create(workshop.pairValues(flux1, flux2)) .assertNext(tuple2 -> { assertThat(tuple2.getT1()).isEqualTo("a"); assertThat(tuple2.getT2()).isEqualTo(1); }) .assertNext(tuple2 -> { assertThat(tuple2.getT1()).isEqualTo("b"); assertThat(tuple2.getT2()).isEqualTo(2); }) .assertNext(tuple2 -> { assertThat(tuple2.getT1()).isEqualTo("c"); assertThat(tuple2.getT2()).isEqualTo(3); }) .verifyComplete(); }
public Flux<Tuple2<String, Integer>> pairValues(Flux<String> flux1, Flux<Integer> flux2) { return Flux.zip(flux1, flux2); }
Part02Transform { public Flux<Tuple2<String, Integer>> pairValues(Flux<String> flux1, Flux<Integer> flux2) { return Flux.zip(flux1, flux2); } }
Part02Transform { public Flux<Tuple2<String, Integer>> pairValues(Flux<String> flux1, Flux<Integer> flux2) { return Flux.zip(flux1, flux2); }  }
Part02Transform { public Flux<Tuple2<String, Integer>> pairValues(Flux<String> flux1, Flux<Integer> flux2) { return Flux.zip(flux1, flux2); }  Flux<Tuple2<String, Integer>> pairValues(Flux<String> flux1, Flux<Integer> flux2); Mono<Order> combineValues(Mono<String> phoneNumber, Mono<String> deliveryAddress); }
Part02Transform { public Flux<Tuple2<String, Integer>> pairValues(Flux<String> flux1, Flux<Integer> flux2) { return Flux.zip(flux1, flux2); }  Flux<Tuple2<String, Integer>> pairValues(Flux<String> flux1, Flux<Integer> flux2); Mono<Order> combineValues(Mono<String> phoneNumber, Mono<String> deliveryAddress);  }