### Question:
SnowdropKafkaConsumer implements KafkaConsumer<K, V> { @Override public Mono<Void> subscribe(String topic) { if (StringUtils.isEmpty(topic)) { throw new IllegalArgumentException("Topic cannot be empty"); } return delegate.subscribe(topic).convert().with(UniReactorConverters.toMono()); } SnowdropKafkaConsumer(io.vertx.mutiny.kafka.client.consumer.KafkaConsumer<K, V> delegate); @Override Mono<Void> subscribe(String topic); @Override Mono<Void> subscribe(Collection<String> topics); @Override Mono<Void> assign(Partition partition); @Override Mono<Void> assign(Collection<Partition> partitions); @Override Mono<Void> unsubscribe(); @Override Flux<String> subscriptions(); @Override Flux<Partition> assignments(); @Override Flux<PartitionInfo> partitionsFor(String topic); @Override void partitionsRevokedHandler(Consumer<Set<Partition>> handler); @Override void partitionsAssignedHandler(Consumer<Set<Partition>> handler); @Override Mono<Void> seek(Partition partition, long offset); @Override Mono<Void> seekToBeginning(Partition partition); @Override Mono<Void> seekToBeginning(Collection<Partition> partitions); @Override Mono<Void> seekToEnd(Partition partition); @Override Mono<Void> seekToEnd(Collection<Partition> partitions); @Override Mono<Long> position(Partition partition); @Override Mono<Long> committed(Partition partition); @Override Mono<Long> beginningOffset(Partition partition); @Override Mono<Long> endOffset(Partition partition); @Override Mono<Long> timeOffset(Partition partition, long timestamp); @Override Mono<Void> commit(); @Override Mono<Void> close(); @Override @SuppressWarnings("unchecked") // SmallRye API returns KafkaConsumer without generics Mono<T> doOnVertxConsumer(Function<io.vertx.kafka.client.consumer.KafkaConsumer<K, V>, T> function); @Override Mono<ConsumerRecord<K, V>> mono(); @Override Flux<ConsumerRecord<K, V>> flux(); @Override ReadStream vertxReadStream();  }### Answer:
@Test public void shouldSubscribeToSingleTopic() { given(mockMutinyConsumer.subscribe("test-topic")) .willReturn(Uni.createFrom().voidItem()); StepVerifier.create(consumer.subscribe("test-topic")) .verifyComplete(); }
@Test public void shouldSubscribeToMultipleTopics() { given(mockMutinyConsumer.subscribe(toSet("test-topic-1", "test-topic-2"))) .willReturn(Uni.createFrom().voidItem()); StepVerifier.create(consumer.subscribe(asList("test-topic-1", "test-topic-2"))) .verifyComplete(); }